konfetka12 Опубликовано 20 ноября, 2013 Жалоба Поделиться Опубликовано 20 ноября, 2013 @Тролль, ну как сформулировали нам, так и делаем(((( получается что это одно большое задание Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 22 ноября, 2013 Жалоба Поделиться Опубликовано 22 ноября, 2013 konfetka12 #include <fstream>#include <iostream>#include <iomanip>#include <list>#include <cstdlib>#include <ctime>#define li list<int>using namespace std;li create(int);void print(li &);void delitems(li &,int,int);void additems(li &,int);void dellist(li &);void writelist(li &,char*);void readlist(li &,char*);int main(){int n,k,m; char fn[100]="temp.txt"; srand(time(NULL)); cout<< "Create the list with n random numbers: n ? "; cin>>n;li L=create(n); print(L);cout<<"How many items to delete? "; cin>>k;cout<<"Before the items with the number? "; cin>>m; delitems(L,k,m);cout<<"How many items to add to the end? "; cin>>k; additems(L,k); print(L);writelist(L,fn);cout<<"The list will be deleted...\n"; dellist(L); print(L);cout<<"The list will be rebuilded...\n";readlist(L,fn); print(L);cout<<"Press Enter for exit\n";dellist(L); cin.get(); cin.get();}li create(int n){li L; for(int i=0;i<n;i++)L.push_back(rand()%100); return L;}void print(li &L){li::iterator it; if(L.empty())cout<<"The list is empty!\n"; else{cout<<"The list is\n"; for(it=L.begin(); it!=L.end(); it++)cout<<setw(4)<<*it; cout<<endl;}}void delitems(li &L,int k,int m){li::iterator it1,it2; m--; if(k>m)k=m; it1=it2=L.begin(); advance(it2,m); advance(it1,m-k); L.erase(it1,it2);}void additems(li &L,int k){for(int i=0;i<k;i++)L.push_back(rand()%100);}void dellist(li &L){L.clear();}void writelist(li &L,char *fn){ofstream f(fn); li::iterator it; for(it=L.begin(); it!=L.end(); it++)f<<' '<<*it; f.close();}void readlist(li &L,char *fn){ifstream f(fn); int m; while(f.good())f>>m,L.push_back(m); f.close();} Запрашивается длина списка, он заполняется случайными числами, потом спрашивается, сколько элементов списка убрать и перед каким по номеру элементом, затем сколько элементов добавить в конец списка (они также заполняются генератором случайных чисел, чтобы не вводить их вручную), обновленный список выводится на экран и в файл, потом опустошается и выводится на экран (естественно, будет просто сообщение, что он пуст), потом восстанавливается из файла, снова выводится на экран и стирается. Ссылка на комментарий Поделиться на другие сайты Поделиться
konfetka12 Опубликовано 25 ноября, 2013 Жалоба Поделиться Опубликовано 25 ноября, 2013 помогите пожалуйста, я не понимаю что такое идентификатор и как его обработать ((( программа удаляет слова состоящие только из цифр, и еще должна преобразовывать строку так чтоб все слова в ней стали идентификаторами как преобразовать слова состоящие из цифр и букв я незнаю((((((((((((((((горе мне горе :cry: ) #pragma argsused #include <cstdlib> #include <iostream> #include <string.h> #include <stdio.h> void Clear(char string[255]) {int i; for(i=0;i<255;i++) {string='\0'; }} int main(int argc, char *argv[]) {char str[255],s[255]="",t[255]="",c; bool r; int i=0,j=0; printf("Enter text>"); gets(s); strcpy(str,""); // êîïèðóåò ñòðîêó do {r=false; do {c=s;i++; if(c>'9'){r=true; } if(c==' '||c=='.'||c=='\0') {if(t[0]>'9'){if® {strcat(str,t); // ñîåä ñòðîêè // strcat(str," "); }} t[j]='\0'; j=0; Clear(t); break;} else {t[j]=c;j++;}} while(1);} while(c!='.'&&c!='\0'); printf("identifiers:\n"); puts(s); system("PAUSE"); return 0;} Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 25 ноября, 2013 Жалоба Поделиться Опубликовано 25 ноября, 2013 Перевожу на русский язык. Идентификатор - это условное обозначение. Например, число 666 является идентификатором сама знаешь чего ;))Поскольку твой преподаватель не служитель преисподней (хотя черт его знает... ;) ), он имеет в виду, видимо, идентификаторы, используемые для обозначения переменных, то есть обозначения, начинающиеся обязательно с буквы, за которой могут следовать цифры или буквы. Однако вычеркивание всех цифр автоматически превращает любое цифро-буквенное сочетание в идентификатор, который может использоваться в качестве имени переменной. Так что спрашивай у своего преподавателя, чем ему не нравится вычеркивание всех цифр - увы, телепатией я не владею Ссылка на комментарий Поделиться на другие сайты Поделиться
konfetka12 Опубликовано 26 ноября, 2013 Жалоба Поделиться Опубликовано 26 ноября, 2013 >>Поскольку твой преподаватель не служитель преисподней (хотя черт его знает... ), он имеет в виду, видимо, идентификаторы, используемые для обозначения переменных, то есть обозначения, начинающиеся обязательно с буквы, за которой могут следовать цифры или буквы. вот именно это и нужно, заменить первую цифру в слове на какую нибудь букву, еще должно быть подчеркивание Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 26 ноября, 2013 Жалоба Поделиться Опубликовано 26 ноября, 2013 Непонятно. Можно сделать дословно, но это противоречит тому, что писалось раньше. Во что должны превратиться слова 111, B11, 1B1? Что означает "в какую-нибудь букву"? Буква A годится? И что означает "еще должно быть подчеркивание"? Подчеркивание в именах переменных обычно рассматривается просто как буква. Ссылка на комментарий Поделиться на другие сайты Поделиться
konfetka12 Опубликовано 26 ноября, 2013 Жалоба Поделиться Опубликовано 26 ноября, 2013 @Тролль, 111 - удаляться B11 - остаются 1B1 - первая цифра заменяется на любую букву,пусть F при выводе должна подчеркиваться первая буква каждого идентификатора Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 26 ноября, 2013 Жалоба Поделиться Опубликовано 26 ноября, 2013 @Тролль, 111 - удаляться B11 - остаются 1B1 - первая цифра заменяется на любую букву,пусть F при выводе должна подчеркиваться первая буква каждого идентификатора В идентификаторах подчеркивание - не часть рисунка буквы, а просто специальный символ, считающийся тоже буквой. #include <stdio.h>#include <string.h>#include <ctype.h>int main(){char str[1000],*pc; int i; gets(str); printf("\n"); pc=strtok(str," ");while(pc){for(i=0;pc[i];i++)if(isalpha(pc[i])||pc[i]=='_'){pc[0]=pc[i];break;} if(i<strlen(pc))printf("%s ",pc); pc=strtok(0," ");}printf("\n"); getchar(); return 0;} Ссылка на комментарий Поделиться на другие сайты Поделиться
konfetka12 Опубликовано 27 ноября, 2013 Жалоба Поделиться Опубликовано 27 ноября, 2013 @Тролль,Благодарности моей нет предела))) спасибо огромное!!! Ссылка на комментарий Поделиться на другие сайты Поделиться
Minds Опубликовано 9 декабря, 2013 Жалоба Поделиться Опубликовано 9 декабря, 2013 (изменено) Уважаемые! Очень сильно прошу Вас помочь! Уже схожу с ума с этим заданием :) Собственно, мне задали декодировать QR Code в .bmp формате , вот как пример QR кода: http://www.omniplanar.com/_upload/CodePics/QR-Code/QR_Code.bmp . Как я понял, нужно сначала считать картинку в двумерный массив, не могли бы вы мне помочь сделать это и дополнительно дать небольшие рекомендации (а может и с самим кодом) по дешифровке qr кода? С уважением! Заранее премного благодарен! Изменено 9 декабря, 2013 пользователем Minds Ссылка на комментарий Поделиться на другие сайты Поделиться
merody Опубликовано 18 декабря, 2013 Жалоба Поделиться Опубликовано 18 декабря, 2013 Доброго времени суток) очень нужна помощь, тему только начали, сразу дали практическую.помогите, пожалуйста Составить программу, в которой 1) организовать ввод квадратной матрицы размера nxn из целых чисел; 2) вычислить сумму положительных элементов; 3) переставить ненулевые элементы второго столбца матрицы в его начало; 4) организовать ввод и вывод матрицы в виде отдельных функций. Условие : Задание каждого пункта оформляется в виде отельной функции Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 19 декабря, 2013 Жалоба Поделиться Опубликовано 19 декабря, 2013 merody, в какой среде программирования? Ссылка на комментарий Поделиться на другие сайты Поделиться
merody Опубликовано 19 декабря, 2013 Жалоба Поделиться Опубликовано 19 декабря, 2013 merody, в какой среде программирования? в С++ Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 20 декабря, 2013 Жалоба Поделиться Опубликовано 20 декабря, 2013 в С++ Это язык, а не среда. C++ меняется, поэтому в разных средах используются разные его версии. #include<iostream>#include<iomanip>using namespace std;const int nm=20;void input(int a[][nm], int &n){ cout<<"Enter the size of array: "; cin>>n; cout<<endl; for(int i=0;i<n;i++){ cout<<"Enter "<< n<<" elements of line "<<i+1<<": "; for(int j=0;j<n;j++)cin>>a[i][j];}}int sumpos(int a[][nm], int n){ int s=0; for(int i=0;i<n;i++)for(int j=0;j<n;j++)s+=a[i][j]; return s;}void tran(int a[][nm], int n, int m){ int i,j; for(i=0,j=0;j<n;i++,j++)i-=!(a[i][m]=a[j][m]); while(i<n)a[i++][m]=0;}void output(int a[][nm], int n){ for(int i=0;i<n;i++){ for(int j=0;j<n;j++)cout<<setw(6)<<a[i][j]; cout<< endl;}}int main(){int n,s; int a[nm][nm]; input(a,n);cout<<endl<<"sum of positives="<<sumpos(a,n)<<endl<<endl;tran(a,n,1); output(a,n);cout<<"\nPress Enter for exit\n"; cin.get(); cin.get();} 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
merody Опубликовано 20 декабря, 2013 Жалоба Поделиться Опубликовано 20 декабря, 2013 в С++ Это язык, а не среда. C++ меняется, поэтому в разных средах используются разные его версии. #include<iostream>#include<iomanip>using namespace std;const int nm=20;void input(int a[][nm], int &n){ cout<<"Enter the size of array: "; cin>>n; cout<<endl; for(int i=0;i<n;i++){ cout<<"Enter "<< n<<" elements of line "<<i+1<<": "; for(int j=0;j<n;j++)cin>>a[i][j];}}int sumpos(int a[][nm], int n){ int s=0; for(int i=0;i<n;i++)for(int j=0;j<n;j++)s+=a[i][j]; return s;}void tran(int a[][nm], int n, int m){ int i,j; for(i=0,j=0;j<n;i++,j++)i-=!(a[i][m]=a[j][m]); while(i<n)a[i++][m]=0;}void output(int a[][nm], int n){ for(int i=0;i<n;i++){ for(int j=0;j<n;j++)cout<<setw(6)<<a[i][j]; cout<< endl;}}int main(){int n,s; int a[nm][nm]; input(a,n);cout<<endl<<"sum of positives="<<sumpos(a,n)<<endl<<endl;tran(a,n,1); output(a,n);cout<<"\nPress Enter for exit\n"; cin.get(); cin.get();} Спасибо большое) и спасибо, что поправили, даже стыдно немного стало :blush: Ссылка на комментарий Поделиться на другие сайты Поделиться
Hidan Опубликовано 25 декабря, 2013 Жалоба Поделиться Опубликовано 25 декабря, 2013 Всем доброго времени суток. Возникла проблема со строками. Пытаюсь создать функцию которая будет удалять из строки все символы в заданном промежутке(она на удивление работает). Возник вопрос, когда я запустил ф-цию через отладчик то при создании указателя на новую строку в отладчике у меня появляется сообщение что создан неправильный указатель(как оказалось позже в функции мейн при создании строки тоже появляется такое сообщение), если не трудно подскажите почему указатель неправильный и как это исправить? вот код программы. PS:В аналогичной функции для числового массива указатель содается правильно. #include <iostream> #include <conio.h> #include <cstring> #include <Windows.h> using namespace std; char *del(char s[],int begin, int end)//функция удаляет из строки символы от бегин до енд { int size = strlen(s)+1;//подсчет размера строки + нулевой байт size-=(end-begin);//вычисление размера для нового массива char *str = new char;//создание нового массиваint j = 0;//переменная для смещения символовstr[size-1]='\0';//завершение строки нулевым байтомfor(int i(0);i<size;i++){if(i==begin)//если и = бегин то присвоить значение для j разницу между end и beginj = end - begin;str=s[i+j];}cout<<str<<endl;delete []s;//удаление старого массиваreturn str;//возвращение нового массива}int main(){SetConsoleCP(1251);SetConsoleOutputCP(1251);int size = 100;char *str = new char;// на отладчике появляется сообщение что str - это неправильный указатель, аналогично и в функции делcout<<"Enter string:";cin.getline(str,size);int begin,end;cout<<"Enter begin:";(cin>>begin).get();cout<<"Enter end:";cin>>end;cout<<str<<endl;str = del(str,begin,end);delete [] str;_getch();return 0;} Ссылка на комментарий Поделиться на другие сайты Поделиться
Ulyashka86 Опубликовано 28 декабря, 2013 Жалоба Поделиться Опубликовано 28 декабря, 2013 Помогите пожалуйста!!!Задание Напишите программу,определяющую самое большое число на n-ом уровне непустого дерева Т (корень считать вершиной нулевого уровня). Спасибо заранее за помощь Ссылка на комментарий Поделиться на другие сайты Поделиться
Ulyashka86 Опубликовано 28 декабря, 2013 Жалоба Поделиться Опубликовано 28 декабря, 2013 И это помогите плиз((( Используя алгоритм поиска в глубину,найдите множество фундаментальных циклов связного неориентированного графа,заданного списками инциндентности Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 28 декабря, 2013 Жалоба Поделиться Опубликовано 28 декабря, 2013 (изменено) @Ulyashka86, Напишите программу,определяющую самое большое число на n-ом уровне непустого дерева Т (корень считать вершиной нулевого уровня). #include <iostream>#include <climits>using namespace std;struct Tree{Tree *L,*R; int m;};int n,s=INT_MIN; Tree *T=0;int ct(Tree *w,int l){ int d=0; if(w->L)d+=ct(w->L,l+1); if(w->R)d+=ct(w->R,l+1); if(n==l)w->m>s?s=w->m:0,d++; return d;}void al(Tree **w, int p){ Tree* k; *w=new Tree; k=*w; k->m=p; k->L=0;k->R=0;}int main(){al(&T,1); al(&T->L,2); al(&T->R,3); al(&T->L->L,4); al(&T->L->L->R,5); al(&T->L->L->L,6); al(&T->R->L,7); al(&T->L->R,8);// создали тестовое деревоcout<<"Level: "; cin>>n; ct(T,0);if(s==INT_MIN)cout<<"Level is absent"; else cout<<s;cout<<"\nPress Enter for exit\n"; cin.get(); cin.get(); Изменено 28 декабря, 2013 пользователем Тролль 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Shadow TH Опубликовано 8 января, 2014 Жалоба Поделиться Опубликовано 8 января, 2014 (изменено) Здравствуйте. Есть вопрос по C#. Допустим у меня имеются 2 массива типа int. Нужно сравнить их значения. Однако для C# массив - ссылочный тип, а потому при обычном сравнении: int[] a = {1,2,3};int[] b = {1,2,3};if(a == b){ Console.WriteLine("Массивы идентичны");}else{ Console.WriteLine("Массивы различны");}будет выдаваться ответ, что массивы различны (поскольку здесь будут сравниваться ссылки a и b, а не сами объекты, на которые они ссылаются). Метод Equals делает то же самое. Вручную сравнивать каждый отдельный элемент массивов в одном условии - весьма неудобно. Может быть есть какие-нибудь встроенные методы для сравнения массивов по значению?Заранее спасибо. Изменено 8 января, 2014 пользователем Shadow TH Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 8 января, 2014 Жалоба Поделиться Опубликовано 8 января, 2014 Попробуй так. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Shadow TH Опубликовано 8 января, 2014 Жалоба Поделиться Опубликовано 8 января, 2014 Спасибо за помощь :) Я находил кстати упоминание про метод SequenceEqual для массивов на MSDN, но у меня почему-то этот метод был недоступен. По указанной Вами ссылке прошёл, выяснилось, что нужно юзать .NET Framework версию >= 3.5 (а у меня 2.0 было). Ссылка на комментарий Поделиться на другие сайты Поделиться
temich5000 Опубликовано 10 января, 2014 Жалоба Поделиться Опубликовано 10 января, 2014 ВСЕМ привет !!!!!!!!!! помогите пожалуйста сделать программы на паскале: Задача 1. На сортировочной станции данные по каждому товару содержат следующую информацию: код страны отправителя( строка без пробелов длинной не более 10 символов, начинающаяся с одного и более латинских символов, соответствующих стране), код страны адресата( строка без пробелов длинной не более 10 символов, начинающаяся с одного и более латинских символов, соответствующих стране), код товара( строка без пробелов длинной не более 10 символов, начинающаяся с одного и более латинских символов, соответствующих наименованию товара), регистрационный номер (семизначное число). Аббревиатурой товара является трехсимвольный код, состоящий из трех заглавных букв - первых букв кода страны отправителя, кода страны адресата и кода товара. Напишите эффективную программу, которая определит информацию по тем товарам, которые имеют заданную аббревиатуру. Информацию о товаре следует выдать в порядке убывания частоты его встречаемости в списке. На вход программе в первой строке подается аббревиатура не больше 20. Во второй строке находится число N – количество товаров, присутствующих на сортировочной станции. В последующих N строках дана информация о товарах в формате: код страны отправителя, код страны адресата, код товара, разделенные одним пробелом. Все символы записаны заглавными латинскими буквами. Текст программы должен содержать комментарии о назначении каждой используемой переменной и о назначении блоков программы. Задача 2. На некоторой остановке в течение одного часа для каждого пассажирского автобуса фиксируется время прибытия в минутах (целое число от 0 до 60), номер маршрута (целое число), название предприятия (текстовая строка 20 символов). Все автобусы одного маршрута принадлежат одному предприятию; одно предприятие может обслуживать несколько маршрутов. Для каждого маршрута задан плановый интервал движения в минутах (целое число от 5 до 15) – промежуток времени между моментами прихода автобусов данного маршрута. Если автобусы некоторого маршрута допускают интервал движения, превышающий плановый более чем на 2 минуты, то на предприятие начисляется по одному штрафному баллу за каждую минуту. Напечатать список маршрутов и предприятий, чьи автобусы допустили нарушения, и число штрафных баллов в виде <номер маршрута>,<предприятие>,<число штрафных баллов>. Исходные данные вводятся в виде: Число М – число маршрутов, проходящих через данную остановку, а затем вводится М строк вида <номер маршрута>, <интервал движения>, <название предприятия>. Все номера маршрутов отличны друг от друга. Затем вводится число N – число прошедших через остановку автобусов, затем вводится N строк вида <время прибытия>, <номер маршрута>. Текст программы должен содержать комментарии о назначении каждой используемой переменной и о назначении блоков программы. Ссылка на комментарий Поделиться на другие сайты Поделиться
merody Опубликовано 13 января, 2014 Жалоба Поделиться Опубликовано 13 января, 2014 Добрый вечер) Снова обращаюсь к вам за помощью :angel_innocent: Задан текст. Определить, сколько слов заканчивается на заданную букву. В Dev-C++. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 13 января, 2014 Жалоба Поделиться Опубликовано 13 января, 2014 merody #include <iostream>#include <cstdlib>#include <cstring>using namespace std;int main(){char str[1000],*w,c,r[]="\n\t ,.!?\r"; int k=0;cout<<"Enter text:\n"; cin.getline(str,1000);cout<<"Enter letter:\n"; c=cin.get();w=strtok(str,r); while(w){if(w[strlen(w)-1]==c)k++; w=strtok(0,r);}cout<<"words '..."<<c<<"': "; cout<<k<<endl; cin.get();cout<<"Press Enter for exit\n"; cin.get();} Тут рассчитано на текст с латинскими буквами. С русскими в C++ бывают сложности. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти