На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Название темы должно быть информативным !
Прежде чем задать вопрос, воспользуйтесь Поиском. и проверьте в FAQ (ЧАВО) Паскаля
Чтобы получить вразумительный ответ, подробно опишите проблему: что надо сделать, что не получается и номер ошибки (если есть), которую выводит компилятор.
Для вставки кода ваших программ используйте, пожалуйста, кнопку СODE=pas или выпадающий список СODE для других языков (подсветка синтаксиса).
[!] Как правильно задавать вопросы | Руководство по языку B.Pascal 7 & Objects/LR | Borland Pascal. Руководство пользователя
Модераторы: volvo877
  
> картотека
    Помогите, пожалуйста, доделать программу, вариантную часть (2 пункт).

    1. Составить картотеку для 3 преступников, указав их фамилию, место рождения, год рождения, рост в см, цвет глаз, цвет волос, особые приметы (татуировка, родимое пятно, шестипалость, заикание и т. д.). Известны рост, возраст, цвет волос и особая примета человека, совершившего преступление. Определить, есть ли в картотеке преступники с подобными приметами и если - да, вывести на чистый экран их фамилию, место рождения, год рождения, если - нет, сообщить об этом. Ниже вывести всю картотеку.
    2. Ввести два варианта в зависимости от национальности преступника. В «русском» варианте поля должны содержать информацию о числе судимостей и о номерах статей за эти судимости, в «нерусском» варианте поля должны содержать информацию о наличии родственников в России (да/нет), их числе в случае «да» и их адрес проживания. Добавить данные из этих полей в выводимую картотеку.

    вот, что смог написать...

    ExpandedWrap disabled
      program lab;
         uses crt;
        const max = 3;
        type
            kartoteka=record
            surname: string;
            mestorogd: string;
            godrogd: string;
            rost: string;
            cvetglaz: string;
            cvetvolos: string;
            osobprim: string;
            nation: string;
            sudimosti: byte;
            nomerastat: string;
            rod: byte;
       end;
      var
         arhiv: array[1..max] of kartoteka;
         j,i,k: integer;
         ch: char;
         godrogdpoisk: string;
         cvetvolospoisk: string;
         osobprimpoisk: string;
         rostpoisk: string;
         nac: byte;
         surname: string;
         mestorogd: string;
         godrogd: string;
         rost: string;
         cvetglaz: string;
         cvetvolos: string;
         osobprim: string;
         nation: string;
         sudimosti: byte;
         nomerastat: string;
       
         Begin
          clrscr;
      begin
           for j:=1 to max do
           with arhiv[j] do
           begin
                writeln('введите фамилию');
                readln(surname);
                writeln('место рождения');
                readln(mestorogd);
                writeln('год рождения');
                readln(godrogd);
                writeln('рост');
                readln(rost);
                writeln('цвет волос');
                readln(cvetvolos);
                writeln('особые приметы');
                readln(osobprim);
                writeln ('цвет глаз');
                readln(cvetglaz);
                writeln('если преступник русский введите - 1, если нет - 2');
                readln(nac);
                if nac=1 then
                   begin
                   writeln('количество судимостей');
                   readln(sudimosti);
                   writeln('статьи');
                   readln(nomerastat);
                   end;
                if nac=2 then
                   begin
                   writeln('есть родственник в России? (да\нет)');
                   readln(ch);
                     end;
                   end;
           end;
       
       
        clrscr;
        writeln('Введите возраст, рост, цвет волос, особые приметы');
        readln(godrogdpoisk, rostpoisk, cvetvolospoisk, osobprimpoisk); k:=0;
        for j:=1 to max do
        with arhiv[j] do
        begin
        if (godrogd=godrogdpoisk) and
        (rost=rostpoisk) and (cvetvolos=cvetvolospoisk) and
        (osobprim=osobprimpoisk) then
        begin
             k:=k+1;
        writeln(surname:25, mestorogd:20, godrogd:4);
        end;
       
        end;
           if k=0 then writeln ('такого преступника нет');
       
                for j:=1 to max do with arhiv[j] do
        begin
             if nac=1 then
       writeln(surname:10, mestorogd:10, godrogd:4, rost:3, cvetglaz:8,
                           osobprim:8, sudimosti:5, nomerastat:5);
             if nac=2 then
       writeln(surname:10, mestorogd:10, godrogd:4, rost:3, cvetglaz:8,
                           osobprim:8, ch:3);
        end;
      End.
      ExpandedWrap disabled
        Type
          Nation=(russian,nonrussian);
          ... // здесь вариантная часть
           Case gaster : nation of
              Russian : (данные);
              Nonrussian: (данные);
            End;

      Подправил
      Сообщение отредактировано: Булат Шакиров -
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0190 ]   [ 15 queries used ]   [ Generated: 28.04.24, 00:04 GMT ]