Помощь - Поиск - Пользователи - Календарь
Полная версия: Типизированные файлы
Форум «Всё о Паскале» > 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(r);
   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, но преобразовать из Паскаля в Делфи смогу.
В поиске подобного не нашла.
Заранее благодарна.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.