|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.12.2008, 03:24 | #1 |
Регистрация: 01.12.2008
Сообщений: 3
|
Обработка массивов данных Pascal
Библиографический список Название литературного источника
Автор Год издания Категория (книга, статья) Вывод на экран списка статей, опубликован-ных после заданного года program lab7; const nmax=30; type tlit=record name:string[20]; avtor:string[20]; year:integer; kategor:string[15]; end; tliter = array [1..nmax] of tlit; var liter:tliter; year:integer; f:text; fname: string[30]; n:integer; m:integer; i:integer; cont:char; tmp:tlit; {********************************** *************** *********} procedure screenlit(var po:tliter; ng:integer;var vr:integer); var i:integer; begin writeln('stati posle zadannoga goda'); for i:=1 to ng do if po[i].year > vr then writeln(po[i].name,po[i].avtor,po[i].year,po[i].kategor); end; {********************************** *************** *********} begin writeln('Programma "Examen Vedomost" '); writeln('1 - Sozdat novy file'); writeln('2 - Obrabotat gotovy file'); writeln('3 - Zavershit raboty programmy'); m:=1; while m<>3 do begin writeln ('vvedute 1,2 ulu 3: '); readln(m); case m of {********************************** *************** *********} 1: begin write('vvedute uma faila '); readln(fname); assign (f,fname); rewrite(f); i:=1; cont:='y'; while cont='y' do with tmp do begin writeln('vvedute dannue',i,'lit '); write('name '); readln(name); write(' avtor '); readln(avtor); write ('year '); readln(year); write (' kategor '); readln(kategor); writeln(f,name:15,avtor:15,year:8,k ategor:10); i:=i+1; writeln('klavuwa y dla prodolzenu9i, druga9i vuxod:') ; readln(cont); end; close(f); end; {********************************** *************** *********} 2: begin write('enter file name '); readln(fname); assign(f,fname); reset(f); i:=1; while not eof(f) do begin with liter [i] do readln (f,name,avtor,year,kategor); i:=i+1; end; close(f); n:=i-1; writeln('vvedute year'); readln(year); for i:=1 to n do with stat[i] do for i:=1 to n do with liter [i] do writeln (name:15,avtor:20,year:4,kategor:10 ); screenlit (liter,n,year); end; end; end; end. Что-то она у меня не пашет Последний раз редактировалось Igor571; 01.12.2008 в 03:30. |
01.12.2008, 10:52 | #2 |
Пользователь
Регистрация: 01.12.2008
Сообщений: 27
|
Столько ошибок что редактировать неохото...
|
01.12.2008, 10:55 | #3 |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
Надо было самму писать программу, а не делать аппликацию из трех программ, хотя бы заголовки сменили, да транслит с украинского на русский переделали. Немного изменил Ваш код, немного добавил, разбирайтесь. Программа работает, тестировал, поэтому, если что сделаете не так, просьба меня не опускать.
Код:
|
01.12.2008, 11:02 | #4 |
Пользователь
Регистрация: 01.12.2008
Сообщений: 27
|
На первый взгляд... приемлимо!
|
01.12.2008, 11:05 | #5 |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
На три с плюсом, лучше нельзя, могут не понять.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Pascal. Заполнение массивов. Нужна помощь. | blackberryx | Помощь студентам | 2 | 05.10.2008 21:11 |
Обработка файлов (Pascal) | Дима82 | Помощь студентам | 10 | 02.06.2008 21:46 |
преобразование массивов при вводе данных | greenkat | Microsoft Office Excel | 4 | 28.02.2008 19:21 |