Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2008, 02:25   #1
Igor571
 
Регистрация: 01.12.2008
Сообщений: 3
Восклицание Вывод на экран списка статей, опубликован-ных после заданного года

Библиографический список Название литературного источника
Автор
Год издания
Категория (книга, статья)


Вывод на экран списка статей, опубликован-ных после заданного года



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;

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, 02:45   #2
Igor571
 
Регистрация: 01.12.2008
Сообщений: 3
По умолчанию

ай нид хелп... мне еще 2 лабы нужно написать... а с это загвоздка
Igor571 вне форума Ответить с цитированием
Старый 01.12.2008, 08:23   #3
madmot
Форумчанин
 
Регистрация: 04.09.2007
Сообщений: 155
По умолчанию

ну на вскидку, ты пишешь:
Код:
while m<>3 do
begin
writeln ('vvedute 1,2 ulu 3: '); readln(m);
{....bla bla....}
что есть не правильно, т.е. в переводе это зучит так:
пока "m" не равно 3 делай ...bla bla...
а тебе необходимо сделать выбор одной из трех операций.

предлагаю такой вариант создания меню
Код:
var ch:char;
begin  
repeat
    ch:=readkey;
    case ch of
    #27: exit;
    '1': {выз. такую-то процедурку};
    '2': {выз. такую-то процедурку};
    '3': {выз. такую-то процедурку};
    end;
  until ch=#27;
end;
madmot вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вывод на экран Nikolai_90 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 11 02.05.2012 09:25
Вывод на экран Rifler Паскаль, Turbo Pascal, PascalABC.NET 10 18.07.2008 18:30
Вывод на 2-ой экран DShiller Общие вопросы Delphi 0 26.05.2008 15:25
Вывод сообщения на экран при выборе из списка определенного значения MaGistR Microsoft Office Excel 1 31.01.2008 09:10