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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.03.2015, 09:22   #1
olya177
 
Регистрация: 10.03.2015
Сообщений: 4
Стрелка Записи в PASCAL. Помогите, пожалуйста!

Необходимо разработать программу, выполняющую следующие функции:
1. Ввод данных (в массив записей).
2. Печать данных.
3. Обработка данных согласно требованиям:

Структура записи: ФИО, место работы, должность, оклад, адрес человека;
Задача: напечатать сведения о работающих на данном предприятии.

Написала что-то подобное, но так как программа обрабатывала данные, которые в нее вводили, а не данные из заранее заполненных файлов, ее не приняли. Как переделать правильно я не поняла, поэтому надеюсь на вашу помощь.

Полностью задание выглядит так:

Организуйте диалог с пользователем в виде выдачи "меню", например:

1. Ручной ввод данных
2. Чтение данных из файла
3. Корректировка данных
4. Печать данных
5. Обработка данных
6. Печать результатов
7. Запись данных в файл
8. Конец работы

Введите номер операции →
olya177 вне форума Ответить с цитированием
Старый 15.03.2015, 09:50   #2
FPaul
Форумчанин
 
Регистрация: 25.01.2015
Сообщений: 474
По умолчанию

Цитата:
Сообщение от olya177 Посмотреть сообщение
Написала что-то подобное, но...
А что уже готово?
FPaul вне форума Ответить с цитированием
Старый 15.03.2015, 12:06   #3
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

Показывай что написала
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 15.03.2015, 12:09   #4
FPaul
Форумчанин
 
Регистрация: 25.01.2015
Сообщений: 474
По умолчанию

Цитата:
Показывай что написала
Осторожнее-осторожнее!
А то спугнёшь...
FPaul вне форума Ответить с цитированием
Старый 15.03.2015, 21:03   #5
olya177
 
Регистрация: 10.03.2015
Сообщений: 4
По умолчанию

На большее я не способна
Код:
uses crt;
label q;
type
    zapis=record
    nomerr: string [30];
    pyot:  string [30];
    pynaz: string [30];
    time: string [30];
    tip: string [20];
    end;
var
   i,c: integer;
   a: array [1..100] of zapis;
   m:char;
   r:string;
begin
i:=1;
q:
writeln('1. Ввести данные.');
writeln('2. Вывести данные.');
writeln('3. Обработать данные.');
writeln('4. Выход из программы.');
readln(m);
case m of
'1':
begin
clrscr;
writeln('Укажите ФИО');
readln(a[i].nomerr);
writeln('Укажите место работы');
readln(a[i].pyot);
writeln('Укажите должность');
readln(a[i].pynaz);
writeln('Укажите оклад');
readln(a[i].time);
writeln('Укажите адрес');
readln(a[i].tip);
i:=i+1;
c:=i;
clrscr;
goto q;
end;
'2':
begin
clrscr;
for i:=1 to c-1 do
begin
writeln('Сотрудник',i);
writeln('ФИО');
writeln(a[i].nomerr);
writeln('место работы');
writeln(a[i].pyot);
writeln('должность');
writeln(a[i].pynaz);
writeln('оклад');
writeln(a[i].time);
writeln('адрес');
writeln(a[i].tip);
writeln;
writeln;
readln;
clrscr;
end;
goto q;
end;
'3':
begin
clrscr;
writeln('Введите название организации');
readln(r);
for i:=1 to c-1 do
begin
if (r = a[i].pyot) then
begin
writeln('Сотрудник',i);
writeln('ФИО');
writeln(a[i].nomerr);
writeln('место работы');
writeln(a[i].pyot);
writeln('должность');
writeln(a[i].pynaz);
writeln('оклад');
writeln(a[i].time);
writeln('адрес');
writeln(a[i].tip);writeln;
readln;
clrscr;
end;
end;
readln;
clrscr;
goto q;
end;
'4':
exit;
end;


end.

Последний раз редактировалось Stilet; 15.03.2015 в 21:18.
olya177 вне форума Ответить с цитированием
Старый 15.03.2015, 22:52   #6
FPaul
Форумчанин
 
Регистрация: 25.01.2015
Сообщений: 474
По умолчанию

Ну уже молодец.
Я слегка подкорректировал цикл меню, пункт ввода и добавил чтение/запись в файл.
Попробуй доработать дальше...
Код:
program test;

uses
  crt;

type
  zapis = record
    nomerr: string [30];
    pyot: string [30];
    pynaz: string [30];
    time: string [30];
    tip: string [20];
  end;
var
  i, c: integer;
  a: array [1..100] of zapis;
  m: char;
  r: string;
  f: Text;
begin
  c := 0;
  repeat
    writeln('1. Ввести данные.');
    writeln('2. Вывести данные.');
    writeln('3. Обработать данные.');
    writeln('4. Выход из программы.');
    writeln('5. Запись в файл.');
    writeln('6. Чтение из файла.');
    readln(m);
    case m of
      '1':
      begin
        clrscr;
        c := c + 1;
        writeln('Укажите ФИО');
        readln(a[c].nomerr);
        writeln('Укажите место работы');
        readln(a[c].pyot);
        writeln('Укажите должность');
        readln(a[c].pynaz);
        writeln('Укажите оклад');
        readln(a[c].time);
        writeln('Укажите адрес');
        readln(a[c].tip);
        clrscr;
      end;
      '2':
      begin
        clrscr;
        for i := 1 to c do
        begin
          writeln('Сотрудник', i);
          writeln('ФИО');
          writeln(a[i].nomerr);
          writeln('место работы');
          writeln(a[i].pyot);
          writeln('должность');
          writeln(a[i].pynaz);
          writeln('оклад');
          writeln(a[i].time);
          writeln('адрес');
          writeln(a[i].tip);
          writeln;
          writeln;
          readln;
          clrscr;
        end;
      end;
      '3':
      begin
        clrscr;
        writeln('Введите название организации');
        readln(r);
        for i := 1 to c do
        begin
          if (r = a[i].pyot) then
          begin
            writeln('Сотрудник', i);
            writeln('ФИО');
            writeln(a[i].nomerr);
            writeln('место работы');
            writeln(a[i].pyot);
            writeln('должность');
            writeln(a[i].pynaz);
            writeln('оклад');
            writeln(a[i].time);
            writeln('адрес');
            writeln(a[i].tip);
            writeln;
            readln;
            clrscr;
          end;
        end;
        readln;
        clrscr;
      end;
      '4':
        exit;
      '5':
      begin
        Assign(f, 'olya177.txt');
        rewrite(f);
        for i := 1 to c do
        begin
          writeln(f, a[i].nomerr);
          writeln(f, a[i].pyot);
          writeln(f, a[i].pynaz);
          writeln(f, a[i].time);
          writeln(f, a[i].tip);
        end;
        Close(f);
      end;
      '6':
      begin
        c := 0;
        Assign(f, 'olya177.txt');
        reset(f);
        while not EOF(f) do
        begin
          c := c + 1;
          readln(f, a[c].nomerr);
          readln(f, a[c].pyot);
          readln(f, a[c].pynaz);
          readln(f, a[c].time);
          readln(f, a[c].tip);
        end;
        Close(f);
      end;
    end;
  until False;
end.
FPaul вне форума Ответить с цитированием
Старый 16.03.2015, 17:16   #7
olya177
 
Регистрация: 10.03.2015
Сообщений: 4
По умолчанию

Большое спасибо!
olya177 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Записи в Делфи.Пожалуйста,помогите дорешить задачу pionerka Помощь студентам 3 12.12.2009 23:23
Внести в задачу пару условий,пожалуйста помогите(Pascal-record)тип записи... Andrux Помощь студентам 2 15.02.2009 17:51
Помогите, пожалуйста, решить задачу на Turbo Pascal. Тема: записи. Morrigan13 Помощь студентам 1 28.03.2008 21:09
Помогите пожалуйста. Записи с вариантами. Паскаль. Сирёго Паскаль, Turbo Pascal, PascalABC.NET 6 26.02.2008 21:30