Nikolai 45 Опубликовано 10 декабря, 2009 Жалоба Поделиться Опубликовано 10 декабря, 2009 Nikolai 45: Условие неясно. ЛП - это линейная последовательность? И что значит заполнить матрицу по диагонали - заполнить главную диагональ числами последовательности, а остальные элементы нулями? И для чего приведена программа? Рисунок к задачи Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 10 декабря, 2009 Жалоба Поделиться Опубликовано 10 декабря, 2009 (изменено) Nikolai 45: #include<iostream.h>#include<iomanip.h>main(){int i,j,k,s,t,a[20][20]; cout<<"size? "; cin>>s; cout<<"first value? "; cin>>k; cout<<"step? "; cin>>t; cout<<endl; for(j=0;j<2*s;j++)for(i=0;i<=j;i++)if(i<s&&j-i<s){a[i][j-i]=k; k+=t;}for(i=0;i<s;i++){for(j=0;j<s;j++)cout<<setw(4)<<a[i][j]; cout<<endl<<endl;}getchar(); getchar();} Программа запрашивает размер матрицы, начальное значение и шаг. Для приведенного примера надо ввести размер 9, начальное значение 1, шаг 1. Изменено 10 декабря, 2009 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
}{0TTa6bI4 Опубликовано 11 декабря, 2009 Жалоба Поделиться Опубликовано 11 декабря, 2009 Здравствуйте, помогите пожалуйста с задачей,я не могу осилить такую. Заранее спасибо. Ссылка на комментарий Поделиться на другие сайты Поделиться
}{0TTa6bI4 Опубликовано 11 декабря, 2009 Жалоба Поделиться Опубликовано 11 декабря, 2009 ТРОЛЛЬ, я вот нашел готовое задание. Ты не мог бы пожалуйста посмотреть правильно оно или нет? там в перегрузке присваивания вроде нету, не подскажешь как сделать? #pragma hdrstop #include <conio.h> #include <stdlib.h> #include <iostream.h> const maxsize=10; //макс. кол-во элементов вектора class Vector { private: int size; //размер вектора int coord[maxsize]; //координаты вектора public: Vector(int n); //конструктор void ViewVector(void); //вывод значений эл-тов вектора void InputVector(void); //ввод вектора Vector operator + (Vector b); //сложение векторов int operator * (Vector b); //умножение векторов Vector operator - (); //изменение знака вектора }; //--------------------------------------------------------------------------- #pragma argsused Vector::Vector(int n) { //констурктор if (n>maxsize) { cout<<"Error - vector is too large"<<"\n"; exit(1); } else { size=n; for(int i=0;i<n;i++) coord=0; } } void Vector::InputVector() { //ввод вектора for(int i=0;i<size;i++) { cout<<"Vector [ "<<i<<" ] = "; cin>>coord; } cout<<"\n"; } void Vector::ViewVector() { //вывод вектора for(int i=0;i<size;i++) { cout<<coord<<" "; } cout<<"\n"<<"\n"; } Vector Vector::operator + (Vector b) { //сложение векторов if (size != b.size) cout<<"Error - vectors are of different dimensions"<<"\n"; else for(int i=0;i<size;i++) coord+=b.coord; return *this; } int Vector::operator * (Vector b) { //умножение векторов int m=0; if (size != b.size) cout<<"Error - vectors are of different dimensions"<<"\n"; else for(int i=0;i<size;i++) m=m+coord*b.coord; return m; } Vector Vector::operator - () { //изменение знака вектора for(int i=0;i<size;i++) coord=-coord; return *this; } int main(int argc, char* argv[]) {//тестирование класса Vector a(3), b(3); int c; cout<<"Input a :"<<"\n"; a.InputVector(); cout<<"a = "; a.ViewVector(); cout<<"Input b :"<<"\n"; b.InputVector(); cout<<"b = "; b.ViewVector(); cout<<"\n"; a=a + b; //сложение cout<<"a = a + b"<<"\n"; cout<<"a = "; a.ViewVector(); c=a * b; //умножение cout<<"c = a * b"<<"\n"; cout<<"c = "<<c<<"\n"; a=-a; //изменение знака вектора cout<<"\n"<<"- a = "; a.ViewVector(); getch(); return 0; } Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 11 декабря, 2009 Жалоба Поделиться Опубликовано 11 декабря, 2009 }{0TTa6bI4: Ошибок не вижу, все должно работать. В некоторых компиляторах может потребоваться заменить const maxsize=10; на const int maxsize=10; - константы без типа некоторыми компиляторами допускаются, но не всегда. А присваивание доопределяется компилятором при создании класса автоматически по умолчанию, его специально программировать не надо. Ссылка на комментарий Поделиться на другие сайты Поделиться
}{0TTa6bI4 Опубликовано 11 декабря, 2009 Жалоба Поделиться Опубликовано 11 декабря, 2009 спасибо) Ссылка на комментарий Поделиться на другие сайты Поделиться
B1GBEN Опубликовано 11 декабря, 2009 Жалоба Поделиться Опубликовано 11 декабря, 2009 Тролль,спасибо огромное. Ссылка на комментарий Поделиться на другие сайты Поделиться
barmaley88 Опубликовано 11 декабря, 2009 Жалоба Поделиться Опубликовано 11 декабря, 2009 может кто-нибудь поможет с моим вариантом,а то в программировании я ноль. ;) Задание то же: Реализовать контейнерный класс в соответствии с вариантом задания,а так же выполнить перегрузку операций, приведенных в таблице. Создать интерфейс для тестирования всех функций класса. Тип объектов которые хранятся в контейнерном классе - int. Ссылка на комментарий Поделиться на другие сайты Поделиться
barmaley88 Опубликовано 12 декабря, 2009 Жалоба Поделиться Опубликовано 12 декабря, 2009 готов заплатить(в разумных пределах) пишите если что в аську 232758800 Ссылка на комментарий Поделиться на другие сайты Поделиться
Влад(SAN) Опубликовано 12 декабря, 2009 Жалоба Поделиться Опубликовано 12 декабря, 2009 помогите пожалуйста лабораторная((((( ;) C/C++ ___________________________________________ Маршрут|Протяженость маршрута|Время в дороге | _______|____________________ |______________| 12 |27.55 |75 | _______|_____________________|______________| 17 |13.6 |57 | _______|_____________________|______________| 12 |57.3 |117 | _______|_____________________|______________| Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 12 декабря, 2009 Жалоба Поделиться Опубликовано 12 декабря, 2009 Влад(SAN): И с чем помочь? Есть полностью заполненная табличка и больше никакой информации. Кстати, чтобы промежутки между словами не сбивались, надо включать таблицы в сообщения как "код" (иконка для обрамления нужными тегами - наверху окна сообщения). Ссылка на комментарий Поделиться на другие сайты Поделиться
Die_hard Опубликовано 13 декабря, 2009 Жалоба Поделиться Опубликовано 13 декабря, 2009 Здравствуйте. Необходимо реализовать алгоритм лексикографической сортировки цепочек последовательностей различной длины в среде разработки Pascal.. Как это сделать не знаю.. Поможете? ЗЫ. Как источником, препод подсказал мне воспользовацца книгой "Ахо А., Хопкрофт Дж., Ульман Дж. - Построение и анализ вычислительных алгоритмов. М., 1979", но тока проку от етого мало.. Там хоть и расписан алгоритм, но как реализовать его на Паскале, не знаю..(( Ссылка на комментарий Поделиться на другие сайты Поделиться
Влад(SAN) Опубликовано 14 декабря, 2009 Жалоба Поделиться Опубликовано 14 декабря, 2009 а задачи с физики кто-то сможет сделать ???=) :doh: Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 14 декабря, 2009 Жалоба Поделиться Опубликовано 14 декабря, 2009 Die_hard: Паскаль умеет встроенными средствами лексикографически сравнивать строки, написать программу "лексикографической сортировки цепочек последовательностей различной длины" не должно быть слишком сложным, за исключением уяснения смысла, вложенного в слова "цепочка последовательностей" - что это такое? Кроме того, важно знать, какие среды программирования на Pascal можно использовать - они разные, и у них разные средства и возможности. Влад(SAN): а задачи с физики кто-то сможет сделать ???=) Во всяком случае, вопрос не для этой темы - есть раздел Наша жизнь > Образование: "Здесь можно и нужно обсуждать проблемы и вопросы, связанные с образованием. Вы можете спросить решение какой-либо задачи, метод создания шпаргалки и т.п."Однако это все-таки Софтфорум, не хотелось бы, что он превращался в нечто вроде "Ответов" на mail.ru, где тьма народу, путаясь в русском языке, просит решить задачи для второго класса. Если кого-то задача заинтересует, могут и тут помочь, но не думаю, чтобы кто-то здесь захотел решать за школьников общеобразовательные задачи. Не Софтфорума это, ИМХО, дело. Ссылка на комментарий Поделиться на другие сайты Поделиться
Cameroon Опубликовано 15 декабря, 2009 Жалоба Поделиться Опубликовано 15 декабря, 2009 последняя задача (надеюсь!). :blush2: условие: преподу опять хочется решение через randomize. Ссылка на комментарий Поделиться на другие сайты Поделиться
leksev Опубликовано 16 декабря, 2009 Жалоба Поделиться Опубликовано 16 декабря, 2009 Привет всем.Если ктонить если может то помогите.Оч нужно. Задание на паскале. Собствено само задание:Необходимо представить в памяти ЭВМ граф и подсчитать в нём локальные степени вершин. Граф представить матрицей смежности(Представляет собой квадратную матрицу n на n, где n- количество вершин графа). Вывести результаты на дисплей. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 16 декабря, 2009 Жалоба Поделиться Опубликовано 16 декабря, 2009 (изменено) Cameroon: Комбинации можно строить перебором всех возможных цифр для очередного места и проверкой правильности суммы или же рассчитать подходящее для нового места число и проверить, входит ли оно в допустимые границы с учетом уже вставленных двух кубиков. Первый вариант несколько проще, быстродействие вариантов зависит от числа кубиков и граней на них, для десяти кубиков с шестью граниями оно будет примерно равно, поэтому реализуем первый вариант. var a,b,c:array[1..10]of integer; i,j,i1,i2,i3,i4,i5,i6,i7,i8,i9,i10:integer;beginfor i:=1 to 10 do begin a[i]:=1; b[i]:=6; c[i]:=0 end;write('Handy input/random input (1/0)? '); readln(i); writeln;if i=1 then begin write('Place and number of the first cube? '); readln(i,a[i]); write('Place and number of the secohd cube? '); readln(j,a[j]);writeln endelse begin randomize; i:=random(10); inc(i); a[i]:=random(6); inc(a[i]);repeat j:=random(10); inc(j); until j<>i; a[j]:=random(6); inc(a[j]) end;b[i]:=a[i]; c[i]:=a[i]; b[j]:=a[j]; c[j]:=a[j]; j:=0;writeln('Source combination: '); for i:=1 to 10 do write(c[i]); writeln; writeln;for i1:=a[1] to b[1] do for i2:=a[2] to b[2] do for i3:=a[3] to b[3] doif i1+i2+i3=10 then for i4:=a[4] to b[4] do if i2+i3+i4=10 then for i5:=a[5] to b[5] do if i3+i4+i5=10 then for i6:=a[6] to b[6] doif i4+i5+i6=10 then for i7:=a[7] to b[7] do if i5+i6+i7=10 then for i8:=a[8] to b[8] do if i6+i7+i8=10 then for i9:=a[9] to b[9] do if i7+i8+i9=10 then for i10:=a[10] to b[10] do if i8+i9+i10=10 then begin j:=1; writeln(i1,i2,i3,i4,i5,i6,i7,i8,i9,i10) end;if j=0 then writeln('No decisions '); writeln; writeln('To exit press Enter '); readlnend. Так как большинство возможных продолжений начальных комбинаций отсеивается еще вначале, большая глубина вложения циклов благодаря if перед каждым вложенным циклом не важна для быстродействия - в подавляющем большинстве комбинаций до вызова внутренних циклов дело просто не доходит. Насчет random - сделал возможность выбора между ручным вводом двух пар чисел: места кубика в замке и числа на нем, и заданием мест и чисел этих кубиков по воле случая. Изменено 16 декабря, 2009 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 16 декабря, 2009 Жалоба Поделиться Опубликовано 16 декабря, 2009 (изменено) leksev: var i,j,n:integer; a:array[1..100,1..100]of byte; b:array[1..100]of integer;beginwrite('Dimension of adjacency matrix of the graph? '); readln(n); for i:=1 to n do begin write('Line',i:3,' : '); for j:=1 to n do read(a[i,j]); readln end;for i:=1 to n do begin b[i]:=0; for j:=1 to n do b[i]:=b[i]+a[i,j] end; writeln; writeln('Local grades:'); for i:=1 to n do write(b[i]:4); writeln; readlnend. Изменено 16 декабря, 2009 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
Die_hard Опубликовано 16 декабря, 2009 Жалоба Поделиться Опубликовано 16 декабря, 2009 помогите реализовать основные процедуры/функции для работы с абстрактным типом данных "очередь": 1. добавление в конец; 2. извлечение из начала; 3. очистка очереди. буду очень благодарен! Ссылка на комментарий Поделиться на другие сайты Поделиться
Die_hard Опубликовано 16 декабря, 2009 Жалоба Поделиться Опубликовано 16 декабря, 2009 помогите реализовать основные процедуры/функции для работы с абстрактным типом данных "очередь": 1. добавление в конец; 2. извлечение из начала; 3. очистка очереди. буду очень благодарен! ой.. среда разработки - pascal ABC или turbo pascal. Ссылка на комментарий Поделиться на другие сайты Поделиться
Die_hard Опубликовано 16 декабря, 2009 Жалоба Поделиться Опубликовано 16 декабря, 2009 или хотя бы подскажите что я делаю не так во тут: type link=^zap; zap=record; info:string; next:link; end; var beginO,endO:link; procedure writeO(var beginO,endO:link;c:string); var u:link; begin new(u); u^.info:=c; u^.next:=nil; if beginO=nil then beginO:=u else endO^.next:=u; endO:=u; end; procedure readO(var beginO,endO:link;var c:string); var u:link; function freeO(x1:link):boolean; begin freeO:=(x1=nil); end; begin if freeO(beginO) then writeln('Очередь пуста') else begin c:=beginO^.info; u:=beginO; beginO:=beginO^.Next; dispose(u); end; end; procedure clearO(var beginO,endO:link); var u:link; begin u:=beginO; beginO:=beginO^.next; dispose(u); end; Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 16 декабря, 2009 Жалоба Поделиться Опубликовано 16 декабря, 2009 (изменено) Die_hard: хотя бы подскажите что я делаю не так во тут:Ну, во-первых, нет основной программы. Ну и кое-какие мелочи вроде ; после слова record. Вот слегка подкорректированный текст:type link=^zap; zap=record info:string; next:link end;var beginO,endO,u:link; p:string;procedure writeO(c:string);beginnew(u); u^.info:=c; u^.next:=nil;if beginO=nil then beginO:=u else endO^.next:=u; endO:=u;end;procedure readO(var c:string);beginif beginO=nil then writeln('Nothing to read! ')else begin c:=beginO^.info; u:=beginO; beginO:=beginO^.Next; dispose(u); end;end;procedure clearO;begin repeat u:=beginO; if u=nil then break; beginO:=beginO^.next; dispose(u); until false end;beginp:='AAAA'; writeO(p); p:='BBBB'; writeO(p); p:=''; {clearO;}readO(p); writeln(p); readO(p); writeln(p); readlnend. Записывает в очередь и читает из нее пару строк. Если раскомментировать вызов clearO, то очередь будет после записи чиститься и попытки чтения из нее дадут только сообщения о пустоте очереди. Изменено 16 декабря, 2009 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
Die_hard Опубликовано 17 декабря, 2009 Жалоба Поделиться Опубликовано 17 декабря, 2009 Тролль! Большое вам спасибо за помощь и комментарии! У меня тут возник ещё один вопрос.. А как будут выглядеть примерно эти же процедуры, если сюда добавить ещё: +инициировать очередь (procedure init(queue):thumbup: +создать массив очередей(array[1..100] of queue); собственно вопрос: как создаются подобные процедуры и как они будут "компоноваться" с уже написанными? т.е. чтобы уже написанные Вами выглядели примерно так: procedure writeO(queue;element); procedure readO(queue;element); procedure clearO(queue); ? P.S. мне всё это необходимо, для всё того же моего первого сдесь вопроса - сортировки цепочек последовательностей.. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 18 декабря, 2009 Жалоба Поделиться Опубликовано 18 декабря, 2009 (изменено) Ну, если нужно создать массив очередей, то это будет выглядеть так: type link=^zap; zap=record info:string; next:link end;queue=record beginO,endO:link end;var a:array[1..100]of queue; i,j:integer; p:string;procedure writeO(var b:queue; c:string);var u:link;beginnew(u); u^.info:=c; u^.next:=nil;if b.beginO=nil then b.beginO:=u else b.endO^.next:=u;b.endO:=u;end;procedure readO(var b:queue; var c:string);var u:link;beginwith b do beginif beginO=nil then writeln('nothing to read!')else begin c:=beginO^.info; u:=beginO; beginO:=beginO^.Next; dispose(u) end;end;end;procedure clearO(var b:queue);var u:link;beginwith b do beginrepeat u:=beginO; if u=nil then break; beginO:=beginO^.next; dispose(u); until falseend;end;beginfor i:=1 to 3 do for j:=1 to 3 do begin p:=chr(i+64)+' '+chr(j+64); writeO(a[i],p) end;clearO(a[2]);for i:=1 to 3 do for j:=1 to 3 do begin p:=''; readO(a[i],p); writeln(p) end; readlnend. А инициировать очереди специально не надо, массив уже содержит сотню вполне готовых к использованию пустых очередей. Можно, конечно, создавать очереди динамически, но для "сортировки цепочек последовательностей" (я так и не понял, что это такое) вполне подходит статический массив очередей, благо пустые очереди места практически не занимают (по 8 байт). Изменено 18 декабря, 2009 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
Влад(SAN) Опубликовано 19 декабря, 2009 Жалоба Поделиться Опубликовано 19 декабря, 2009 Разработать программу, которая выводит на экран таблицу, содержащую данные, введите с клавиатуры. _____________________________________________________________ Вид транспорта|маршрут|Протяженность маршрута(км)|Время в дороге| _____________|_______|_________________________|_____________| Тр---------------|12--------|27,55----------------------------|75--------------| Т-с--------------|17--------|13,6------------------------------|57--------------| А----------------|12a-------|57,3------------------------------|117------------| ____________________________________________________________| ------- - это пробел. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти