• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Паскаль

natulika

Новые
Регистрация
12 Янв 2011
Сообщения
13
Реакции
0
Баллы
0
Паскаль

помогите пожалуйста очень нужно .


Работа с массивами от записи
1.Запустите программную среду языка Паскаль.
2.Составьте программу, в которй создается массив от записи со структурой:
Табельный номер Фамилия Номер цеха Должность
9(4) A(17) 9(3) A(15)
3. Заполните массив, организуйте вывод всех данных и поиск по критерию. При организации поиска предусмотрите вывод сообщения, если данные отсутствуют.
4. Организуйте меню , состоящее из пунктов:
Ввод данных
Вывод всех данных
Поиск по критерию
Выход
 
там таблица
табельный номер 9(4)

Фамилия А(17)
НОМЕР ЦЕХА 9(3)
ДОЛЖНОСТЬ А(15)
Нет, не понял опять. Что такое 9, А? Что означают цифры в скобках? Количество позиций? Подробнее, пожалуйста.
 
можите стукнуть в асю я файл от куда взяла эту лабу
472712589
 
вот 9 вариант лаба 6
Ладно. Вроде понятно. Хотя - за такие вещи в старые времена били бронзовыми канделябрами по рожам. Просмотрел методичку - ну нигде не обнаружил разъяснения символов. Но так, по здравому смыслу - вроде бы 9 означает числовую форму, А - строковую с указанием числа позиций. Будем считать, что так.
Ладно, вечером прикину. Мгновенно не обещаю.
Да, сразу предупреждаю: меню будет простым, без управления стрелками, подсветки пунктов и пр. - эти CRT-шные заморочки я знаю плохо, сам не пользуюсь.
 
Вот:
Код:
Uses CRT;
TYPE
 Plant=Record
        TabN:Word;
        Surname:String;
        Workshop:Byte;
        Post:String;
       end;
VAR
 Wk:Array[1..100] of Plant;
 Nwk,i,j,ActNum,SearchType,Wsh:Byte;
 y_n:Char;
 TN:Word;
 SN,P:String;

BEGIN
 REPEAT
  ClrScr;
  Writeln('Выберите номер действия: ');
  WriteLn('1: Ввод данных');
  WriteLn('2: Поиск');
  WriteLn('3: Выход');
  ReadLn(ActNum);
  CASE ActNum of
   1: begin
       ClrScr;
       Nwk:=0;
       Repeat
        Write('Следующий работник (y/n)? ');
        ReadLn(y_n);
        If (y_n='y') or (y_n='Y') then
         begin
          Inc(Nwk);
          Writeln('Табельный номер (4 цифры макс.):');
          ReadLn(Wk[Nwk].TabN);
          Writeln('Фамилия (17 символов макс.):');
          ReadLn(Wk[Nwk].Surname);
          Writeln('Номер цеха (3 цифры макс.):');
          ReadLn(Wk[Nwk].Workshop);
          Writeln('Должность (15 символов макс.):');
          ReadLn(Wk[Nwk].Post);
         end;
       Until (y_n='n') or (y_n='N');
       ClrScr;
       For i:=1 to Nwk do
        With Wk[i] do
         begin
          Write(TabN:4,' ',Surname);
          for j:=Length(Surname) to 18 do write(' ');
          Writeln(Workshop:3,' ',Post);
         end;
       WriteLn('Press "Enter" to continue...');
       ReadLn;
      end;
   2: begin
       ClrScr;
       WriteLn('Поиск по:');
       WriteLn('1: Табельному номеру');
       WriteLn('2: Фамилии');
       WriteLn('3: Номеру цеха');
       WriteLn('4: Должности');
       ReadLn(SearchType);
       Case SearchType of
        1: begin
            ClrScr;
            Write('Табельный номер для поиска: ');
            Readln(TN);
            For i:=1 to Nwk do
             If Wk[i].TabN=TN then
              With Wk[i] do
               begin
                Write(TabN:4,' ',Surname);
                for j:=Length(Surname) to 18 do write(' ');
                Writeln(Workshop:3,' ',Post);
               end;
            WriteLn('Press "Enter" to continue...');
            ReadLn;
           end;
        2: begin
            ClrScr;
            Writeln('Фамилия для поиска: ');
            Readln(SN);
            For i:=1 to Nwk do
             If Wk[i].Surname=SN then
              With Wk[i] do
               begin
                Write(TabN:4,' ',Surname);
                for j:=Length(Surname) to 18 do write(' ');
                Writeln(Workshop:3,' ',Post);
               end;
            WriteLn('Press "Enter" to continue...');
            ReadLn;
           end;
        3: begin
            ClrScr;
            Write('Номер цеха для поиска: ');
            Readln(Wsh);
            For i:=1 to Nwk do
             If Wk[i].Workshop=Wsh then
              With Wk[i] do
               begin
                Write(TabN:4,' ',SurName);
                for j:=Length(Surname) to 18 do write(' ');
                Writeln(Workshop:3,' ',Post);
               end;
            WriteLn('Press "Enter" to continue...');
            ReadLn;
           end;
        4: begin
            ClrScr;
            Write('Должность для поиска: ');
            Readln(P);
            For i:=1 to Nwk do
             If Wk[i].Post=P then
              With Wk[i] do
               begin
                Write(TabN:4,' ',Surname);
                for j:=Length(Surname) to 18 do write(' ');
                Writeln(Workshop:3,' ',Post);
               end;
            WriteLn('Press "Enter" to continue...');
            ReadLn;
           end;
       end;
      end;
   3: Halt;
  End;
 UNTIL 0=1;
END.
 
Назад
Сверху