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

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

Вернуться   Форум программистов > Работа для программиста > Фриланс
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2011, 17:15   #11
Credo4444
Пользователь
 
Регистрация: 01.03.2011
Сообщений: 15
По умолчанию

вторая
uses crt;
const nmax=20;{макс. количество}
type TStud=record{тип запись с полями по условию}
fm:string[15];
im:string[15];
god:word;
grp:word;
him:byte;
fiz:byte;
alg:byte;
end;
var st,x,y:Tstud;{переменные типа запись для ввода, вывлода и сортировки
f:file of Tstud;{типизированный файл записей}
n,i,j,k:byte;
begin
clrscr;
assign(f,'stud');{создаем файл для записи
rewrite(f);
repeat{вводим размер
write('Количество студентов от 2 до ',nmax,' n=');
readln(n);
until n in [2..nmax];
writeln('Введите данные:');
for i:=1 to n do
begin
writeln('Студент ',i);
with st do{пока данная запись
begin{вводим ее поля
write(' Фамилия: ');readln(fm);
write(' Имя: ');readln(im);
write(' Год рождения: ');readln(god);
write(' Номер группы: ');readln(grp);
repeat
write(' Оценка по химии ');
readln(him);
write(' Оценка по физике ');
readln(fiz);
write(' Оценка по алгебре ');
readln(alg);
until (him in [2..5])and(fiz in [2..5])and(alg in [2..5]);
end;
write(f,st);{пишем запись в файл как его компонент
end;
clrscr;
reset(f);{открываем и смотрим содержание в начале
writeln('Полный список группы:':40);
writeln;
writeln('------------------------------------------------------------');
writeln('| Фамилия,имя | Г.р. | Группа | Химия | Физика | Алгебра |');
writeln('------------------------------------------------------------');
while not eof(f) do
begin
read(f,st);{читаем одну запись
with st do
begin
gotoXY(1,whereY);write('| ',fm,' ',im);{выбираем позицию в текущей строке и выводим
gotoXY(17,whereY);write('|',god:6);
gotoXY(24,whereY);write('|',grp:7);
gotoXY(33,whereY);write('|',him:4);
gotoXY(41,whereY);write('|',fiz:4);
gotoXY(50,whereY);write('|',alg:5);
gotoXY(60,whereY);writeln('|');
end;
end;
writeln('------------------------------------------------------------');
close(f);
write('Нажмите Enter');
readln;
Credo4444 вне форума Ответить с цитированием
Старый 02.06.2011, 17:15   #12
Credo4444
Пользователь
 
Регистрация: 01.03.2011
Сообщений: 15
По умолчанию

clrscr;
writeln('Список отличников:':40);
writeln;
k:=0;
reset(f);
writeln('------------------------------------------------------------');
writeln('| Фамилия,имя | Г.р. | Группа | Химия | Физика | Алгебра |');
writeln('------------------------------------------------------------');
while not eof(f) do
begin
read(f,st);
with st do
if (him=5)and(fiz=5)and(alg=5) then{если три 5,}
begin
k:=1;{фиксируем и выводим
gotoXY(1,whereY);write('| ',fm,' ',im);
gotoXY(17,whereY);write('|',god:6);
gotoXY(24,whereY);write('|',grp:7);
gotoXY(33,whereY);write('|',him:4);
gotoXY(41,whereY);write('|',fiz:4);
gotoXY(50,whereY);write('|',alg:5);
gotoXY(60,whereY);writeln('|');
end;
end;
writeln('------------------------------------------------------------');
if k=0 then writeln('Отличников нет');
close(f);
write('Нажмите Enter');
readln;
clrscr;
writeln('Список получивших 2:':40);
writeln;
k:=0;
reset(f);
writeln('------------------------------------------------------------');
writeln('| Фамилия,имя | Г.р. | Группа | Химия | Физика | Алгебра |');
writeln('------------------------------------------------------------');
while not eof(f) do
begin
read(f,st);
with st do
if (him=2)or(fiz=2)or(alg=2) then{если есть хоть одна 2}
begin
k:=1;
gotoXY(1,whereY);write('| ',fm,' ',im);
gotoXY(17,whereY);write('|',god:6);
gotoXY(24,whereY);write('|',grp:7);
gotoXY(33,whereY);write('|',him:4);
gotoXY(41,whereY);write('|',fiz:4);
gotoXY(50,whereY);write('|',alg:5);
gotoXY(60,whereY);writeln('|');
end;
end;
writeln('------------------------------------------------------------');
if k=0 then writeln('Получивших 2 нет');
close(f);
write('Нажмите Enter');
readln;
clrscr;
writeln('Список студентов с фамилией на А:':40);
writeln;
k:=0;
reset(f);
writeln('------------------------------------------------------------');
writeln('| Фамилия,имя | Г.р. | Группа | Химия | Физика | Алгебра |');
writeln('------------------------------------------------------------');
while not eof(f) do
begin
read(f,st);
with st do
if fm[1]='A' then{если первая буква поля фамилия А}
begin
k:=1;
gotoXY(1,whereY);write('| ',fm,' ',im);
gotoXY(17,whereY);write('|',god:6);
gotoXY(24,whereY);write('|',grp:7);
gotoXY(33,whereY);write('|',him:4);
gotoXY(41,whereY);write('|',fiz:4);
gotoXY(50,whereY);write('|',alg:5);
gotoXY(60,whereY);writeln('|');
end;
end;
writeln('------------------------------------------------------------');
if k=0 then writeln('Получивших 2 нет');
close(f);
write('Нажмите Enter');
readln;
clrscr;
reset(f);{сортировка файла по возрастанию года рождения простым обменом}
for i:=0 to filesize(f)-2 do
for j:=i+1 to filesize(f)-1 do
begin
seek(f,i);
read(f,x);
seek(f,j);
read(f,y);
if x.god>y.god then
begin
st:=x;
x:=y;
y:=st;
seek(f,i);
write(f,x);
seek(f,j);
write(f,st);
end;
end;
close(f);
reset(f);
writeln('Список группы по возрастанию года рождения:':40);
writeln;
writeln('------------------------------------------------------------');
writeln('| Фамилия,имя | Г.р. | Группа | Химия | Физика | Алгебра |');
writeln('------------------------------------------------------------');
while not eof(f) do
begin
read(f,st);
with st do
begin
gotoXY(1,whereY);write('| ',fm,' ',im);
gotoXY(17,whereY);write('|',god:6);
gotoXY(24,whereY);write('|',grp:7);
gotoXY(33,whereY);write('|',him:4);
gotoXY(41,whereY);write('|',fiz:4);
gotoXY(50,whereY);write('|',alg:5);
gotoXY(60,whereY);writeln('|');
end;
end;
writeln('------------------------------------------------------------');
close(f);
write('Нажмите Enter для выхода');
readln
end.
Credo4444 вне форума Ответить с цитированием
Старый 02.06.2011, 17:29   #13
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2Credo4444
я просил выложить структуру файла для анализа для второй задачи, и не исходник
и кстати, в исходнике у тебя заполнение файла со студентами есть, в задаче же этого не требуется, просто прочитать и вывести
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 02.06.2011, 17:35   #14
Credo4444
Пользователь
 
Регистрация: 01.03.2011
Сообщений: 15
По умолчанию

Разработать алгоритм и программу для решение задачи по оброботке типизированных файлов
Credo4444 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Файлы (текстовые файлы) Finn4ik Помощь студентам 0 25.04.2011 21:42
Файлы Agent_147 Общие вопросы Delphi 1 13.04.2011 13:46
Не сохраняет файлы (Создает файлы пустышки) Rock231 Помощь студентам 2 25.12.2010 12:31
Файлы данных.Типизированные файлы. вылка Помощь студентам 6 17.05.2010 15:42
два вредных вопроса:про асю и прикриплёные файлы файлы steck Свободное общение 3 17.06.2007 14:53