Помощь - Поиск - Пользователи - Календарь
Полная версия: Типизированные файлы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
rikimaru
Дюди, спасите меня, грозит недопуск к сессии!!!

Осталось сдать одну программу, но я не могу её написать!

Надо написать программу ведения файла, содержащего сведения о расписании занятий:
- день недели;
- номер пары;
- название предмета;
- фамилия преподавателя.
В программе должны быть реализованы следующие функции:
· ввод записей;
· корректировка записей;
· удаление записей;
· просмотр записей на экране.
Требуемая функция выбирается с помощью меню.
+нужно реальзовать функцию, которая выводит в текстовый файл сведения о расписании занятий каждого преподавателя по дням недели.
Все процедуры и функции должны быть в отдельном Unit'e

Короче, если у кого-нибуть есть время и желание помочь бедному студенту, то напишите пожалуйста! ОЧЕНЬ НАДО!

СПАСИБО!
klem4
Используй поиск " задача записи", "типизированный файл"

таких задач решено огромное количество ...
rikimaru
СТранно... ничего именно решенного, я к сожалению не нашел unsure.gif
rikimaru
Help me HELP PLEASE!
klem4
вот тебе пример писал кому-то давно, без файла :


program kuznecov_3;

uses crt;

type

TFirm = record
firmName : string[21];
s : single;
end;

TArea = record
firmN : byte;
firms : array[1..20] of TFirm;
end;

TBase = array[1..20] of TArea;

var
k,l : byte;
base : TBase;

procedure FillData(var r : TBase; n : byte);
var
i,j : byte;
begin
for i := 1 to n do
with r[i] do begin
writeln('Rayon № ',i);
write('Vvedite kolichestvo firm dla rayona № ',i,' : ');
readln(firmN);
for j := 1 to firmN do
with firms[j] do begin
write('Vvedite nazvanie predptiyatia № ',j,' : ');
readln(firmName);
write('Vvedite dohod predpriyatiya : ');
readln(s);
writeln;
end;
clrscr;
end;

writeln('Spasibo, vvod zaverhen, najmite <Enter>');
readln;
clrscr;
end;

function GetAreaSum(r : TBase; areaN : byte) : single;
var
t : byte;
sum : single;
begin
sum := 0;
with r[areaN] do
for t := 1 to firmN do
sum := sum + firms[t].s;

GetAreaSum := sum;

end;
procedure ShowAreaSum;
var
i : byte;
begin

clrscr;

write('Vvedite nomer rayona : ');
readln(i);

writeln('Summa dohodov firm rayona № ',i,' = ',GetAreaSum(base, i):2:2);
writeln('Najmite <Enter>');
readln;

end;

procedure ShowAllAreaSum(n : byte);
var
i : byte;
begin
clrscr;
for i := 1 to n do
writeln('Summa dohodov dla rayona № ',i,' = ',GetAreaSum(base,i):3:2);

writeln('Najmite <Enter>');
readln;
end;

procedure ShowSortedTable(r : TBase; n : byte);
procedure Sort(var b : TBase);
var
i : byte;
temp : TArea;
flag : boolean;
begin

repeat
flag := true;
for i := 1 to n-1 do
if not(GetAreaSum(b,i)>=GetAreaSum(b,i+1)) then begin
temp := b[i];
b[i] := b[i+1];
b[i+1] := temp;
flag := false;
end;
until flag;

end;

var
i : byte;
begin
Sort®;
for i := 1 to n do
with r[i] do
writeln('Rayon № ',i,' s=',GetAreaSum(r, i):3:2);

writeln('Najmite <Enter>');
readln;
end;

procedure menu(var quit : boolean);

begin

clrscr;

writeln('Vibirite punkt menu : ');
writeln;
writeln('1 -> Vivesti summu dohodov po zadannomu rayonu.');
writeln('2 -> Vivesti summu dohodov po vsem rayonam.');
writeln('3 -> Vivesti otsortirovannie dannie');
writeln;
writeln('4 -> Zavershit rabotu programmi.');

case readkey of
'1': ShowAreaSum;
'2': ShowAllAreaSum(k);
'3': ShowSortedTable(base, k);
'4': quit := true;
end;

exit;

end;

var
q : boolean;

begin

q := false;

clrscr;

write('Vvedite kolichestro rayonov : ');

readln(k);

FillData(base, k);

while not(q) do menu(q);

end.




еще раз настоятельно советую использовать поиск
Агри
Обидно будет, если не сдам одну-единственную задачу и не получу автомата.
Помогите, пожалуйста. В упор не доходит, как делать.

Задача: Есть файл, содержащий текст программы на Паскале. Преобразовать его в файл слов. Проверить в нём соответствие begin и end, case и end. Подсчитать кол-во соответствующих операторов.

Изучаем мы, конечно, Delphi, но преобразовать из Паскаля в Делфи смогу.
В поиске подобного не нашла.
Заранее благодарна.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.