Тролль Опубликовано 5 декабря, 2011 Жалоба Поделиться Опубликовано 5 декабря, 2011 (изменено) vampir4eg Как вывести уже отсортированый массив в десятичном исчислении??Отсортирован массив b, а не a. А нужно вывести отсортированный по b массив a. Надо одновременно сортировать оба массива, то есть вместо for(int i=0;i<n;i++)for(int i=0;i<n-1;i++) if(b[i]>b[i+1]){int r=b[i]; b[i]=b[i+1]; b[i+1]=r;} надо сделать for(int i=0;i<n;i++)for(int i=0;i<n-1;i++) if(b[i]>b[i+1]){int r=b[i]; b[i]=b[i+1]; b[i+1]=r; r=a[i]; a[i]=a[i+1]; a[i+1]=r;} что ознаечает if (a & 1 ) count++; и a = a >> 1; // если в последнем разряде a[i] единица, увеличиваем count на 1if (a[i] & 1 ) count++; // сдвигаем представление a[i] в двоичном коде вправо на один разрядa[i] = a[i] >> 1; Изменено 5 декабря, 2011 пользователем Тролль 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
vampir4eg Опубликовано 5 декабря, 2011 Жалоба Поделиться Опубликовано 5 декабря, 2011 Тролль Ну я заменил и когда я вывожу массив А то выводит нули, а если В то ничего не меняется Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 5 декабря, 2011 Жалоба Поделиться Опубликовано 5 декабря, 2011 (изменено) Shatkovskiy #include <iostream>#include <fstream> #include <iomanip>#include <list>#include <time.h> using namespace std;template<class T> void addL1(T& L1, T& L2, T& L) {class T::iterator it; for(it=L1.begin(); it!=L1.end(); it++)L.push_back(*it); for(it=L2.begin(); it!=L2.end(); it++)L.push_back(*it);}template<class T> void addL2(T& L1, T& L2){L1.merge(L2);}template<class T> void sort1(T& list) {list.sort();}int main(){srand(time(NULL)); const int n=5; double i1[n], i2[n];for(int i=0;i<n;i++){i1[i]=rand()%100; i2[i]=rand()%100;}list<double> L1(i1,i1+n), L2(i2,i2+n), L; list<double>::iterator it;cout<<"L1: "<<endl; for(it=L1.begin(); it!=L1.end(); it++)cout<<setw(4)<<*it; cout<<endl;cout<<"L2: "<<endl; for(it=L2.begin(); it!=L2.end(); it++)cout<<setw(4)<<*it; cout<<endl;addL1 <list<double> >(L1,L2,L);cout<<"L as L1 and L2 by elements: "<<endl; for(it=L.begin(); it!=L.end(); it++)cout<<setw(4)<<*it; cout<<endl; addL2 <list<double> >(L1,L2);cout<<"L1 as the union of L1 and L2: "<<endl; for(it=L1.begin(); it!=L1.end(); it++)cout<<setw(4)<<*it; cout<<endl;sort1 <list<double> >(L1); cout<<"L1 as sorted L1: "<<endl; for(it=L1.begin(); it!=L1.end(); it++)cout<<setw(4)<<*it; cout<<endl;ofstream os("text.txt"); for(it=L1.begin(); it!=L1.end(); it++)os<<setw(4)<<*it; cout<<endl;os.close(); getchar();} Для проверки генерируются два списка со случайными числами, затем они соединяются в один новый список, затем первый список удлиняется на второй список, затем объединенный список сортируется. Результаты операций выводятся на экран. Потом отсортированный объединенный список записывается в файл text.txt. P.S. То же с несколько более красивым выводом: #include <iostream>#include <fstream> #include <iomanip>#include <list>#include <time.h>#define ld list<double>#define fd setw(6)<<fixed<<setprecision(1)using namespace std;template<class T> void addL1(T& L1, T& L2, T& L) {class T::iterator it; for(it=L1.begin(); it!=L1.end(); it++)L.push_back(*it); for(it=L2.begin(); it!=L2.end(); it++)L.push_back(*it);}template<class T> void addL2(T& L1, T& L2){L1.merge(L2);}template<class T> void sort1(T& list) {list.sort();}int main(){const int n=5; double i1[n], i2[n]; srand(time(NULL)); for(int i=0;i<n;i++){i1[i]=rand()%1000/10.; i2[i]=rand()%1000/10.;};ld L1(i1,i1+n), L2(i2,i2+n), L; ld::iterator it;cout<<"L1: "<<endl; for(it=L1.begin(); it!=L1.end(); it++)cout<<fd<<*it; cout<<endl;cout<<"L2: "<<endl; for(it=L2.begin(); it!=L2.end(); it++)cout<<fd<<*it; cout<<endl;addL1 <ld >(L1,L2,L);cout<<"L as L1 and L2 by elements: "<<endl; for(it=L.begin(); it!=L.end(); it++)cout<<fd<<*it; cout<<endl; addL2 <ld >(L1,L2);cout<<"L1 as the union of L1 and L2: "<<endl; for(it=L1.begin(); it!=L1.end(); it++)cout<<fd<<*it; cout<<endl;sort1 <ld >(L1);cout<<"L1 as sorted L1: "<<endl; for(it=L1.begin(); it!=L1.end(); it++)cout<<fd<<*it; cout<<endl;ofstream os("text.txt"); for(it=L1.begin(); it!=L1.end(); it++)os<<fd<<*it; cout<<endl;os.close(); getchar();} Изменено 5 декабря, 2011 пользователем Тролль 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 5 декабря, 2011 Жалоба Поделиться Опубликовано 5 декабря, 2011 ТролльНу я заменил и когда я вывожу массив А то выводит нули, а если В то ничего не меняется Ну да, потому что ты по ходу изготовления массива b запортил массив a. Значит, это надо обойти, хотя бы так: вместо while(a[i]!=0){if(a[i] & 1)count++; a[i]=a[i]>>1; b[i]=count;} сделать int k=a[i]; while(k!=0){if(k & 1)count++; k=k>>1; b[i]=count;} Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 5 декабря, 2011 Жалоба Поделиться Опубликовано 5 декабря, 2011 Как сделать для русского?Надо заменить функцию upcase на свою, например, function upcase(c:char):char; begin if c in['a'..'z','а'..'я'] then upcase:=chr(ord©-32) else upcase:=c end; Это надо вставить перед var Ссылка на комментарий Поделиться на другие сайты Поделиться
Shatkovskiy Опубликовано 5 декабря, 2011 Жалоба Поделиться Опубликовано 5 декабря, 2011 Спасибо большое! Но смотри... Когда компилирую первый вариант кода, выбивает ошибки: 1>------ Построение начато: проект: Lab8_2, Конфигурация: Debug Win32 ------1>Компиляция...1>Lab8_2.cpp1>c:\users\administrator\documents\visual studio 2008\projects\lab8_2\lab8_2\lab8_2.cpp(18) : warning C4244: аргумент: преобразование 'time_t' в 'unsigned int', возможна потеря данных1>c:\users\administrator\documents\visual studio 2008\projects\lab8_2\lab8_2\lab8_2.cpp(9) : error C2242: имя typedef не может следовать за классом, структурой или объединением1> c:\users\administrator\documents\visual studio 2008\projects\lab8_2\lab8_2\lab8_2.cpp(25): см. ссылку на создание экземпляров функции шаблон при компиляции "void addL1<std::list<_Ty>>(T &,T &,T &)"1> with1> [1> _Ty=double,1> T=std::list<double>1> ]1>Журнал построения был сохранен в "file://c:\Users\Administrator\Documents\Visual Studio 2008\Projects\Lab8_2\Lab8_2\Debug\BuildLog.htm"1>Lab8_2 - ошибок 1, предупреждений 1========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ========== Пробовал колупаться сам, но у меня ничего не получается...( Ссылка на комментарий Поделиться на другие сайты Поделиться
vampir4eg Опубликовано 5 декабря, 2011 Жалоба Поделиться Опубликовано 5 декабря, 2011 Тролль спасибо, есть ещё пару вопросов Написать программу, позволяющую ввести последовательность натуральных чисел и создать из нее дек. Длина последовательности n. Обеспечить вычисление суммы и произведения вида x1*xn + x2*xn-1 + ... + xn*x1; Создал дек ,ввёл последовательность чисел, но не могу посчитать сумму и произведение. Как это сделать?? Type Tinf=integer; List=^Tlist; Tlist = record next:list; //указатель на первый элемент prev:list;// на последний элемент data:Tinf;// даные которое вводим end; Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 5 декабря, 2011 Жалоба Поделиться Опубликовано 5 декабря, 2011 Shatkovskiy Хм, VS у меня не установлена. На Dev-C++ все нормально. Попробуй добавить к заголовочным файлам #include "stdafx.h" и заменить main на _tmain Ссылка на комментарий Поделиться на другие сайты Поделиться
Shatkovskiy Опубликовано 5 декабря, 2011 Жалоба Поделиться Опубликовано 5 декабря, 2011 Shatkovskiy Хм, VS у меня не установлена. На Dev-C++ все нормально. Попробуй добавить к заголовочным файлам #include "stdafx.h" и заменить main на _tmain #include "stdafx.h" я всегда прописываю, неглядя даже) Всё равно, спасибо огромное... Буду сидеть, мож получится допилить) Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 5 декабря, 2011 Жалоба Поделиться Опубликовано 5 декабря, 2011 vampir4eg Берешь первую пару элементов - первый с конца и первый с начала дека, перемножаешь, добавляешь произведение в общую сумму, берешь вторую пару - второй от начала и второй от конца и так далее, пока дек не кончится. Ссылка на комментарий Поделиться на другие сайты Поделиться
vampir4eg Опубликовано 5 декабря, 2011 Жалоба Поделиться Опубликовано 5 декабря, 2011 (изменено) где тут ошибка? смотреть пункт 3 uses crt;Type Tinf=integer; List=^Tlist; Tlist = record next:list; prev:list; data:Tinf; end;Var first,last,tmp1:list;procedure AddUp(var first,last:list;znach1:integer);var tmp:list;beginbeginnew(tmp); tmp^.data:=znach1;tmp^.next:=first;tmp^.prev:=NIL;if (first<>NIL) then first^.prev:=tmpelse last:=tmp;first:=tmp;end;end;procedure DelUp(var first,last:list);var tmp:list;beginif (first<>NIL) then begin tmp:=first; first:=first^.next; if (first=NIL) then last:=NIL else first^.prev:=NIL; dispose(tmp); writeln('Udaleno'); end ;end;procedure clear_dec(var first,last:list);var tmp:list;beginclrscr;repeat delup(first,last); until first=nil;end;procedure Print(first:List);begin if first=nil then begin writeln('ïóñòo'); exit; end; while first<>nil do begin Write(first^.data, ' '); first:=first^.next end;end;var Stk, tmpl:List; i,znach:Tinf; ch,x,x1,sum,proiz,n:integer;begin Writeln('1)dobavit vverh'); Writeln('2)pokazat'); Writeln('3)summa i proizvedinie'); writeln; Stk:=nil; ch:=0; repeat read(ch); clrscr; Writeln('1)dobavit vverh'); Writeln('2)pokazat'); Writeln('3)summa i proizvedinie'); writeln; case ch of 1:begin write('Vvedite dlinu posledovatelnosti: '); readln(n); for i:=1 to n do begin writeln (i,' ','element:'); read (znach); AddUp(first,last,znach); end; clrscr; Writeln('1)dobavit vverh'); Writeln('2)pokazat'); Writeln('3)summa i proizvedinie'); end; 2:begin print(first); readkey; end; 3:begin // здесь я пытаюсь вычислить сумму и произведения вида x1*xn + x2*xn-1 + ... + xn*x1; while first <> nil do begin x:=first^.data; first:=first^.next; end; while first <> nil do begin x1:=first^.data; first:=first^.prev; end; proiz:=x*x1; sum:=sum+proiz; writeln(proiz); readkey; end; end; until ch=4;end. Изменено 5 декабря, 2011 пользователем vampir4eg Ссылка на комментарий Поделиться на другие сайты Поделиться
AntonyDed Опубликовано 6 декабря, 2011 Жалоба Поделиться Опубликовано 6 декабря, 2011 Надо заменить функцию upcase на свою, например, function upcase(c:char):char; begin if c in['a'..'z','а'..'я'] then upcase:=chr(ord©-32) else upcase:=c end; Это надо вставить перед var Точно. Там же отличие на 32. Только вот тут небольшая проблемка. Не могу понять в чем дело. Получилась такая программка: function upcase(c:char):char;begin if c in ['a'..'z','а'..'я'] then upcase:=chr(ord©-32) else upcase:=c end;varS:string;i:integer;beginwrite('Введите строку : '); readln(S);for i:=1 to Length(S) do S[i]:=upcase(S[i]);write('Результат ',S);readlnend. Как работает программа: Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 6 декабря, 2011 Жалоба Поделиться Опубликовано 6 декабря, 2011 vampir4eg У тебя, похоже, поля prev неправильно заполняются. Попробуй распечатать свой дек в обратном направлении. Во-вторых, когда у тебя будет реализована распечатка в обратном напрвлении, для вычисления суммы произведений надо ОДНОВРЕМЕННО перебирать дек вниз и вверх в одном цикле, чтобы номера ОБОИХ элементов корректировались каждый раз. AntonyDed Это что-то с русификацией Windows, похоже. Попробуй распечатать все символы в твоей кодовой таблице по их номерам, скажем, var i:integer; begin for i:=32 to 255 do write(chr(i):4); writeln; readln end. Возможно, некоторые символы окажутся не на своих местах, тогда можно буднт подкорректировать upcase. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
AntonyDed Опубликовано 6 декабря, 2011 Жалоба Поделиться Опубликовано 6 декабря, 2011 (изменено) AntonyDed Это что-то с русификацией Windows, похоже. Попробуй распечатать все символы в твоей кодовой таблице по их номерам, скажем, var i:integer; begin for i:=32 to 255 do write(chr(i):4); writeln; readln end. Возможно, некоторые символы окажутся не на своих местах, тогда можно буднт подкорректировать upcase. Правда не на месте. Просто главное, чтобы эта программа работала не у меня дома, а на рабочем компе, на котором будет все проверяться ( По сути-то все правильно Изменено 6 декабря, 2011 пользователем AntonyDed Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 6 декабря, 2011 Жалоба Поделиться Опубликовано 6 декабря, 2011 AntonyDed Ну так сделай function upcase(c:char):char; begin upcase:=c; if c in['a'..'z','а'..'п'] then upcase:=chr(ord©-32); if c in['р'..'я'] then upcase:=chr(ord©-80); end; Скорее всего, раз на твоем компе будет работать, то и на рабочем компе будет работать. Ссылка на комментарий Поделиться на другие сайты Поделиться
Radu Опубликовано 7 декабря, 2011 Жалоба Поделиться Опубликовано 7 декабря, 2011 Здравствуйте. Помогите пожалуйста. Такая задача C++: Приближенное вычисление интегралов методом Newton-Cotes : 3 открытых узел Спасибо Ссылка на комментарий Поделиться на другие сайты Поделиться
Radu Опубликовано 7 декабря, 2011 Жалоба Поделиться Опубликовано 7 декабря, 2011 (изменено) ах да, функция Изменено 7 декабря, 2011 пользователем Radu Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 7 декабря, 2011 Жалоба Поделиться Опубликовано 7 декабря, 2011 Radu #include <iostream>#include <math.h>double f(double x){return exp(x)*cos(x*x+1);} int main(){std::cout<<(2*f(.25)-f(.5)+2*f(.75))/3; getchar();} 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
vampir4eg Опубликовано 8 декабря, 2011 Жалоба Поделиться Опубликовано 8 декабря, 2011 (изменено) Может есть у кого АВЛ-дерево?? особенно надо процедура удаления всех листьев указанного диапазона. PASCAL ABC. в интернете не могу найти нормальный код АВЛ дерева, а тем более удаления листьев P.S сор если не в тот раздел написал Изменено 8 декабря, 2011 пользователем vampir4eg Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 8 декабря, 2011 Жалоба Поделиться Опубликовано 8 декабря, 2011 (изменено) vampir4eg Maikl Korleone выкладывал код в этом посте, правда, на С++. Конечно, перевести на Pascal требует времени, но работа рутинная. P.S. Тут есть на Delphi, который ближе к PascalABC, но это не Майкл писал, поэтому работоспособность не гарантируется... Изменено 8 декабря, 2011 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
anton-dida1 Опубликовано 11 декабря, 2011 Жалоба Поделиться Опубликовано 11 декабря, 2011 Здравствуйте. Помогите пожалуйста 1. Разработайте программу, которая считывает с клавиатуры строку текста и шифрует его, выводя сначала все четные символы, а затем нечетные в обратном порядке. Шифрограмма не только выводится на экран, но и записывается в файл 2. Разработайте программу, которая считывает шифрограмму (задание 1) расшифровывает ее, выводит на экран и записывает в файл. Все в паскале Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 11 декабря, 2011 Жалоба Поделиться Опубликовано 11 декабря, 2011 anton-dida1 1 var i,k:integer; p,s:string; fi:text;beginreadln(s); p:=s; k:=length(s);for i:=1 to k do if odd(i) then p[k-i div 2]:=s[i] else p[i div 2]:=s[i]; writeln(p); assign(fi,'cipher.txt'); rewrite(fi); writeln(fi,p); close(fi); readlnend. 2 var i,k:integer; p,s:string; fi:text;beginassign(fi,'cipher.txt'); reset(fi); readln(fi,p); close(fi); s:=p; k:=length(p);for i:=1 to k do if odd(i) then s[i]:=p[k-i div 2] else s[i]:=p[i div 2]; writeln(s);assign(fi,'text.txt'); rewrite(fi); writeln(fi,s); close(fi); readlnend. Первая программа шифрует введенную строку, выводит шифровку на экран и записывает ее в файл cipher.txt, вторая считывает этот файл, выводит расшифрованную строку на экран и записывает ее в файл text.txt 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
miksss Опубликовано 12 декабря, 2011 Жалоба Поделиться Опубликовано 12 декабря, 2011 По информатике задали вот такое Вариант 8. Учет потребности в деталях на план выпуска 1. Создать таблицы: Таблица 1. Справочник изделий Структура таблицы: Код изделия, Наименование изделия, Стоимость сборки Таблица 2. Справочник деталей Структура таблицы: Код детали, Наименование детали, Цена Таблица 3. План выпуска Структура таблицы: Код изделия, Количество изделий Таблица 4. Состав изделия Структура таблицы: Код изделия, Код детали, Количество деталей в изделии 2. Ввести в таблицу 1 сведения о пяти изделиях, в таблицу 2 - данные о 10-ти деталях, которые используются при сборке изделий, в таблицу 3 – данные о плане выпуска пяти изделий (код изделия должен выбираться из поля со списком). 3. Создать форму «Состав изделия» типа главная/подчиненная для просмотра и ввода данных в таблицу 4. Каждое изделие должно содержать не менее трех деталей. Главная форма должна содержать поля: Код изделия, Наименование изделия. Подчиненная форма должна иметь табличный вид и содержать строки с полями: Код детали, Количество деталей в изделии. Значение поля Код детали должно выби-раться из поля со списком. 4. Создать форму «Потребность в детали на план выпуска изделий». Код детали должен выбираться из списка. Форма должна иметь табличный вид и содержать графы: Код изделия, Наименование изделия, Количество изделий, Потребность в детали на план выпуска изделия. В форме должно вычисляться общую потребность в детали на весь план выпуска. 5. Создать итоговый отчет «План выпуска в стоимостном выражении». Отчет должен содержать графы: Код изделия, Наименование изделия, Количество изделий, Стоимость деталей, Стоимость сборки, Стоимость всего. Отчет должен содержать итоговые стоимости деталей, сборки и всего на весь план выпуска. Буду признателен, если сделаете Ссылка на комментарий Поделиться на другие сайты Поделиться
vampir4eg Опубликовано 12 декабря, 2011 Жалоба Поделиться Опубликовано 12 декабря, 2011 вообщем добавление и вывод в авл дерево я смог сделать,но процедуру которое удаляет все листья АВЛ–дерева, попадающие в заданный диапазон значений не как не выходит. Помогите пожайлусто доделать её. uses crt;type TKey = integer; TBalance = -1..1; AVLTree = ^AVLNode; AVLNode = record left, right: AVLTree; key: TKey; { Поле определяющее сбалансированность вершины } balance: TBalance; end;var tree: avltree; i, n, akey: integer; flag: boolean;procedure InsertNode(var Tree: AVLTree; const akey: TKey; var flag: Boolean);var Node1, Node2: AVLTree;begin if Tree = nil then begin New(Tree); flag := true; with Tree^ do begin key := akey; left := nil; right := nil; balance := 0; end; end else if Tree^.key > akey then begin InsertNode(Tree^.left, akey, flag); if flag then case Tree^.balance of 1: begin Tree^.balance := 0; flag := false; end; 0: Tree^.balance := -1; -1: { Balance } begin Node1 := Tree^.left; if Node1^.balance = -1 then { LL } begin Tree^.left := Node1^.right; Node1^.right := Tree; Tree^.balance := 0; Tree := Node1; end else {LR} begin Node2 := Node1^.right; Node1^.right := Node2^.left; Node2^.left := Node1; Tree^.left := Node2^.right; Node2^.right := Tree; if Node2^.balance = -1 then Tree^.balance := 1 else Tree^.balance := 0; if Node2^.balance = 1 then Node1^.balance := -1 else Node1^.balance := 0; Tree := Node2; end; Tree^.balance := 0; flag := false end end end else if Tree^.key < akey then begin InsertNode(Tree^.right, akey, flag); if flag then case Tree^.balance of -1: begin Tree^.balance := 0; flag := false; end; 0: Tree^.balance := 1; 1: { Balance } begin Node1 := Tree^.right; if Node1^.balance = 1 then { RR } begin Tree^.right := Node1^.left; Node1^.left := Tree; Tree^.balance := 0; Tree := Node1; end else {RL} begin Node2 := Node1^.left; Node1^.left := Node2^.right; Node2^.right := Node1; Tree^.right := Node2^.left; Node2^.left := Tree; if Node2^.balance = 1 then Tree^.balance := -1 else Tree^.balance := 0; if Node2^.balance = -1 then Node1^.balance := 1 else Node1^.balance := 0; Tree := Node2; end; Tree^.balance := 0; flag := false end end endend;procedure Lkp(Tree: AvLTree);begin if Tree = nil then exit; Lkp(Tree^.left); write(' ', Tree^.key); Lkp(Tree^.right);end;begin writeln('кол-во элементов'); readln(n); for i := 1 to n do begin writeln('Введите',' ',i,'-e',' ','число'); readln(akey); InsertNode(Tree, akey, flag); end; writeln(''); lkp(tree);end. И помогите доделать вторую задачку :Алгоритм лексикографической сортировки последовательности цепочек одинаковой длины В интернете прочитал что удобней всего использовать очередь. Очередь я организовал,но вот с самим методом возникли проблемы. Есть даже алгоритм сортировки(под спойлером); и вот моя очередь Program Stek;uses crt;type Tinf=integer; List=^TList; TList=record data:TInf; next:List; end;var beginO,endO :list; count:integer; n:integer; znach:Tinf;Procedure writeO(Var BeginO, EndO :list; znach1: integer);Var tmp:list;Begin new(tmp); tmp^.Data := znach1; tmp^.Next := Nil; if BeginO = Nil {проверяем, пуста ли очередь} then BeginO := tmp {ставим указатель начала очереди на первый созданный элемент} else EndO^.Next :=tmp; {ставим созданный элемент в конец очереди} count:=count+1; EndO :=tmp; {переносим указатель конца очереди на последний элемент}End;Procedure readO(Var BeginO :list; Var znach1 : integer);Var tmp:list;Function FreeO(x1 :list): boolean;Begin FreeO := (x1 = Nil);End;Begin if FreeO(BeginO) then writeln('Очередь пуста') else begin znach1:= BeginO^.Data; {считываем искомое значение в переменную с} tmp:= BeginO; {ставим промежуточный указатель на первый элемент очереди} BeginO := BeginO^.Next;{указатель начала переносим на следующий элемент} count:=count-1; dispose(tmp); {освобождаем память, занятую уже ненужным первым элементом} writeln('udaleno') end;End;procedure Print(BeginO:List);begin if BeginO=nil then begin writeln('пустo'); exit; end; while BeginO<>nil do begin Write(BeginO^.data, ' '); BeginO:=BeginO^.next end;end; Очень нужна ваша помощь. Заранее спасибо! Ссылка на комментарий Поделиться на другие сайты Поделиться
vampir4eg Опубликовано 12 декабря, 2011 Жалоба Поделиться Опубликовано 12 декабря, 2011 если изображение не показывает то вот ссылка на неё Жмяк Сорь за флуд. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти