![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 18.04.2010
Сообщений: 3
|
![]()
Запрограммировать
I. набор записей.Запись -минимум 3 поля.Поля должны быть различных типов. II.Способ хранения: файл. III.Процедуры: а) поиск записи,б) селекция( выделение группы записей по критерию и запись в другой файл),в) добавление записи в начало файла,д) вывод файла,диаграмма.... ВОТ...ПРОГРАММА ТО ГОТОВА..ВОТ ТОЛЬКО В НЕЙ НИЧЕГО НЕ ПОНЯТНО...КТО НИБУДЬ ПОМОГИТЕ РАЗОБРАТЬСЯ ЧТО ЗДЕСЬ К ЧЕМУ... type rec=record fam:string[50]; year:integer; marital:boolean; end; var input:file of rec; k,kk,kkk:integer; buf:rec; procedure search(n:integer;first:rec); var flag:boolean; second:rec; otv:char; begin assign(input,'input.txt'); reset(input); flag:=true; while not eof(input) and flag do begin read(input,second); case n of 1: if (second.fam=first.fam) then flag:=false; 2: if (second.year=first.year) then flag:=false; 3: if (second.marital=first.marital) then flag:=false; end; if flag=false then begin writeln('Найдена запись!'); writeln('Фамилия, имя: ',second.fam); writeln('Год рождения: ',second.year); if second.marital then writeln('Семейное положение: женат(а)') else writeln('Семейное положение: не женат(а)'); write('Продолжить поиск? Y N: '); readln(otv); if otv='Y' then flag:=true; end; end; write('Для выхода нажмите Enter _'); readln end; procedure selection(n:integer;first:rec); var flag:boolean; second:rec; otv:char; name:string[20]; output:text; |
![]() |
![]() |
![]() |
#2 |
Регистрация: 18.04.2010
Сообщений: 3
|
![]()
begin
assign(input,'input.txt'); reset(input); write('Введите имя файла, в который запишутся данные (например, out.txt): '); readln(name); assign(output,name); rewrite(output); writeln('Cоздан файл ',name,'.'); while not eof(input) do begin flag:=true; read(input,second); case n of 1: if (second.fam=first.fam) then flag:=false; 2: if (second.year=first.year) then flag:=false; 3: if (second.marital=first.marital) then flag:=false; end; if flag=false then begin writeln('Фамилия, имя: ',second.fam); writeln('Год рождения: ',second.year); if second.marital then writeln('Семейное положение: женат(а)') else writeln('Семейное положение: не женат(а)'); if second.marital then writeln(output,second.fam:40,second .year:7,' женат(а)') else writeln(output,second.fam:40,second .year:7,' не женат(а)'); end; end; close(output); write('Для выхода нажмите Enter _'); readln end; procedure add(new:rec); var name:string[20]; output:file of rec; begin write('Введите имя файла, в который запишутся данные (например, out.txt): '); readln(name); assign(output,name); rewrite(output); assign(input,'input.txt'); reset(input); write(output,new); while not eof(input) do begin read(input,new); write(output,new); end; writeln('Создан новый Бинарный файл под именем ',name); close(output); write('Для выхода нажмите Enter _'); readln end; procedure write_all; var second:rec; begin assign(input,'input.txt'); reset(input); writeln('Файл input.txt:'); while not eof(input) do begin read(input,second); if second.marital then writeln(second.fam:40,second.year:7 ,' женат(а)') else writeln(second.fam:40,second.year:7 ,' не женат(а)'); end; end; begin writeln('Здравствуйте, чем бы вы хотели заняться:'); writeln('Для поиска записи нажмите 1'); writeln('Для "селекции" нажмите 2'); writeln('Для добавления записи в файл нажмите 3'); writeln('Для вывода файла нажмите 4'); readln(k); case k of 1: begin writeln('По какому критерию вы хотите искать?'); writeln('Нажмите 1, если по фамилии, имени'); writeln('Нажмите 2, если по году рождения'); writeln('Нажмите 3, если по семейному положению'); read(kk); case kk of 1: begin write('Введите фамилию, имя записи, которую хотите найти: '); readln(buf.fam); search(1,buf); end; 2: begin write('Введите год рождения человека, которого хотите найти: '); readln(buf.year); search(2,buf); end; 3: begin write('Введите семейное положение (если женат(а) - то 1, иначе - 0: '); readln(kkk); if kkk=1 then buf.marital:=true else buf.marital:=false; search(3,buf); end; end; end; 2:begin writeln('По какому критерию вы хотите искать?'); writeln('Нажмите 1, если по фамилии, имени'); writeln('Нажмите 2, если по году рождения'); writeln('Нажмите 3, если по семейному положению'); read(kk); case kk of 1: begin write('Введите фамилию, имя записи, которую хотите найти: '); readln(buf.fam); selection(1,buf); end; 2: begin write('Введите год рождения человека, которого хотите найти: '); readln(buf.year); selection(2,buf); end; 3: begin write('Введите семейное положение (если женат(а) - то 1, иначе - 0: '); readln(kkk); if kkk=1 then buf.marital:=true else buf.marital:=false; selection(3,buf); end; end; end; 3: begin writeln('Введите информацию о человеке, которого хотите добавить:'); write('Введите фамилию, имя '); Readln(buf.fam); write('Введите год рождения '); Readln(buf.year); write('Введите семейное положение (если женат(а) - то 1, иначе - 0: '); readln(kk); if kk=1 then buf.marital:=True else buf.marital:=False; add(buf); end; 4: write_all; else write('Ошибка'); end; close(input); end. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
записи в паскале | swedalena | Помощь студентам | 9 | 25.05.2010 20:36 |
Записи в паскале | TreiN-san | Помощь студентам | 4 | 06.01.2010 21:22 |
ЗАПИСИ на паскале | Fornarina | Помощь студентам | 6 | 16.02.2009 19:17 |