IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> типизированные файлы
AJIMA3
сообщение 21.12.2007 10:46
Сообщение #1





Группа: Пользователи
Сообщений: 6
Пол: Мужской

Репутация: -  0  +


Здравствуйте. Прошу помощи решить задачку, которая идет у меня на ссесию. Можете посмотреть во вложении.
Но я еще и в сообщении ее написал.


Описание создаваемых файлов (используются далее в индивидуальных вариантах)
Создается типизированный файл записей. Предварительно создать структурированный пользовательский тип запись

Файл Студент
Структура записи:
•ФИО (40 знаков);
•номер курса (1 знак);
•номер группы (1 знак);
• успеваемость — 5 экзаменов в каждой из 10 сессий;
•форма обучения (целевая, договорная) (1 знак);
• экзамен:
— наименование предмета (10 знаков);
— оценка (1 знак).
Записи упорядочены по номеру курса, внутри курса — по номеру группы, в группе—по ФИО.


А вот и сама задача:
12. Создайте файл Студент. Занесите в отдельный файл записи из файла Студент, выполнив перевод студентов на следующий курс.

Очень нужно решить, я не знаю как: не работал с типизированными файлами. Спасибо.


Прикрепленные файлы
Прикрепленный файл  zadachka.zip ( 3.4 килобайт ) Кол-во скачиваний: 170
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Lapp
сообщение 21.12.2007 12:26
Сообщение #2


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


AJIMA3, таких задач тут решалось - не пересчитать. Поищи.

А про файлы прочти в FAQ, там есть специальная тема.

Сделай запись (тип). Заведи файл этих записей. Заведи переменную (запись). Заполни поля. Запиши. Заполни по новой. Запиши...
Считывать аналогично.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
AJIMA3
сообщение 21.12.2007 12:44
Сообщение #3





Группа: Пользователи
Сообщений: 6
Пол: Мужской

Репутация: -  0  +


Спасибо за ответ, но боюсь мне не удасться решить, даже прочитав темы. Инфы я начитался, а вот практики нет, плюс мне эту задачу уже на днях сдавать! Прошу решите. Я не решу ее сам! mega_chok.gif Прошу! Я уже несколько дней зря убил, а толку нет! Спасибо.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
AJIMA3
сообщение 21.12.2007 13:33
Сообщение #4





Группа: Пользователи
Сообщений: 6
Пол: Мужской

Репутация: -  0  +


Вот тут у меня есть наброски, но что-то не работает....

uses crt;

const
n = 1;
m = 1;
count = 3;

type
examine = record
exname: string;
mark: byte;
end;
student = record
FIO: string;
kursnum: byte;
groupnum: byte;
FO: char;
uspeh: array[1..n,1..m]of examine;
end;

procedure studentread(var stud: student);
var
i, j: word;
begin
with stud do
begin
Writeln('BBEDITE FIO:');
readln(FIO);
Writeln('BBEDITE KURS:');
readln(kursnum);
Writeln('BBEDITE GROUP:');
readln(groupnum);
Writeln('BBEDITE Formu Obucheniya:');
readln(FO);
{ readln(FIO, kursnum, groupnum, FO);}
for i:=1 to n do
for j:=1 to m do
with uspeh[i,j] do
readln(exname, mark);
end;
writeln;
end;

procedure studentwrite(stud: student);
var
i, j: word;
begin
with stud do
begin
writeln('FIO: ',FIO, ' kurs: ', kursnum, ' group: ', groupnum, ' education form: ',FO);
writeln('examination:');
for i:=1 to n do
for j:=1 to m do
with uspeh[i,j] do
writeln(exname, ' ', mark);
end;
end;

procedure studentswap(var stud1, stud2: student);
var
tempstud: student;
begin
tempstud:=stud1;
stud1:=stud2;
stud2:=tempstud;
end;

var
onestud: student;
students:array[1..count]of student;
f, next: file of student;
i, j: word;
begin
for i:=1 to count do
studentread(students[i]);
for i:=1 to count-1 do
begin
for j:=i+1 to count do
if (students[j].kursnum < students[i].kursnum) or
((students[j].kursnum = students[i].kursnum) and (students[j].groupnum < students[i].groupnum)) or
((students[j].kursnum = students[i].kursnum) and (students[j].groupnum = students[i].groupnum) and
(students[j].FIO < students[i].FIO)) then
studentswap(students[j], students[i]);
end;
assign(f, 'studenttest.txt');
rewrite(f);
for i:=1 to count do
write(f, students[i]);
close(f);
assign(next, 'studenttest0.txt');
rewrite(next);
reset(f);
for i:=1 to count do
begin
read(f, onestud);
if onestud.kursnum = 5 then
onestud.kursnum:= 0
else
inc(onestud.kursnum);
write(next, onestud);
studentwrite(onestud);
end;
close(f);
close(next);
readln;
end.


Прошу помогите!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 23.06.2025 10:32
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"