Важная информация
Показано с 1 по 3 из 3

Тема: Помогите Pascal

  1. #1 Задача в Pascal 
    Новичок
    Регистрация
    29.04.2016
    Сообщений
    9
    Сказал(а) спасибо
    4
    Поблагодарили 0 раз(а) в 0 сообщениях
    Описать структуру данных. Заполнить с Клавиатуры N переменных описанного типа. Осуществить необходимую Обработка данных и вивести ре-зультат на экран.

    Информация в составе содержит данные о названии товара, его количество и цену. Найти:
    • перечень средней стоимости по каждому из товаров упорядоченый по его количеству;
    • название самого дорогого и самого дешевого товара:
    • перечень товаров, цена которых находится в диапазоне, указанного пользователем.

    Похожую почти програму написал, но тут просто в тупике(

    Pascal Code:
    1. type
    2.     clinic = record
    3.       sur,add,diag: string[20];
    4.       sex: string[1];
    5.       age: string[2];
    6.       end;
    7. var
    8.     fl:boolean;
    9.     a: array[1..100] of clinic;
    10.     i,j,n: integer;
    11.     key: char;
    12.     filename,k,y: string[10];
    13.     z: clinic;
    14.     f: file of clinic;
    15. begin
    16. i:=0;
    17. write('введите имя файла: ');
    18. readln(filename);
    19. assign(f,filename);
    20.   rewrite(f);
    21.   repeat
    22.       inc(i);
    23.       with a[i] do begin
    24.          write('фамилия пациента: ');
    25.          readln(z.sur);
    26.          write('пол (м/ж): ');
    27.          readln(z.sex);
    28.          write('возраст: ');
    29.          readln(z.age);
    30.          write('место проживания: ');
    31.          readln(z.add);
    32.          write('диагноз: ');
    33.          readln(z.diag);
    34.          write(f,z);
    35.       end;
    36.       writeln('Выход? (д/н) ');
    37.          readln(key)
    38.    until upcase(key)='Д';
    39.    n:=i;
    40.     for i:=1 to n -1  do
    41.              for j:= 1 to n-i do
    42.              if a[j].sur > A[j+1].sur then
    43.                                   Begin
    44.                                   z:=a[j];
    45.                                   a[j]:=a[j+1];
    46.                                   a[j+1]:=z;
    47.                                    end;
    48. close(f);
    49. reset(f);
    50. writeln('введите Диагноз: ');
    51.    readln(y);
    52.    fl:=false;
    53.    while not eof(f) do
    54.      begin
    55.        read(f,z);
    56.        if z.diag=y then
    57.        begin
    58.        writeln(z.sur);
    59.        fl:=true;
    60.        end;
    61.      end;
    62.    if fl=false then writeln('таких больных нет');
    63.    close(f);
    64. end.
    Последний раз редактировалось Артём Седляр; 30.04.2016 в 20:49. Причина: Не то вставил)
    Ответить с цитированием  
     

  2. #2  
    Admin
    Регистрация
    09.04.2014
    Сообщений
    1,212
    Сказал(а) спасибо
    776
    Поблагодарили 488 раз(а) в 401 сообщениях
    Вставьте код нормально, кто в этой мешанине будет разбираться, у нас есть специальное меню для вставки кода, уважайте тех кто вам помогает!
    И исправьте название ваших тем, для того что бы другие пользователи смогли воспользоватся...!!!
    Иначе всё удалю и аккаунт забаню..!
    Ответить с цитированием  
     

  3. Пользователь сказал cпасибо:

    >Quiet Snow< (30.04.2016)

  4. #3  
    Супер модератор Аватар для >Quiet Snow<
    Регистрация
    11.04.2011
    Адрес
    Планета земля
    Сообщений
    3,852
    Сказал(а) спасибо
    1,816
    Поблагодарили 947 раз(а) в 809 сообщениях
    Записей в блоге
    1
    Тестируйте, должно работать...

    Pascal Code:
    1. Uses Crt;
    2. Type
    3.   Tovar = Record
    4.     TName : String[20];   {   Имя       }
    5.     Price : Integer;      {   Цена      }
    6.     PriSr : Real;         {   Ср. цена  }
    7.     Quant : Integer;      {   Кол-во    }
    8.   End;
    9. Var
    10.   MyTov: Array[1..100] of Tovar;
    11.   MinPr, MaxPr : Integer;
    12.   PrExp, PrChp : Integer;    {   Дорогой \ Дешёвый      }
    13.   NmExp, NmChp : String[20]; {   Дорогой \ Дешёвый имя  }
    14.   Tmp : Tovar;
    15.   i, k, n : Integer;
    16. Label Re;
    17. Begin
    18. ClrScr;
    19. {  Узнаем кол-во полей и диапазон цен  }
    20.   Write ('  Diapazon cen (Min cena): ');
    21.   ReadLn (MinPr);
    22.   Write ('  Diapazon cen (Max cena): ');
    23.   ReadLn (MaxPr);
    24. Re: Write ('Skolko tovarov ? : ');
    25.     ReadLn (n);
    26.   If (n < 1) Or (n > 100) Then Goto Re;
    27. {  Заполним поля  }
    28.   For i := 1 To n Do Begin
    29.      WriteLn ('Vvedite parametri tovara ', i);
    30.      Write ('  Imya tovara: ');
    31.      ReadLn (MyTov[i].TName);
    32.      Write ('  Cena vsego kol-va etogo tovara: ');
    33.      ReadLn (MyTov[i].Price);
    34.      Write ('  Kol-vo tovara: ');
    35.      ReadLn (MyTov[i].Quant);
    36.   End;
    37. {  Найдём средние цены  }
    38.   PrChp := MyTov[1].Price; PrExp := PrChp;
    39.   For i := 1 To n Do Begin
    40.      MyTov[i].PriSr := MyTov[i].Quant / MyTov[i].Price;
    41.      If PrChp > MyTov[i].Price Then Begin
    42.        PrChp := MyTov[i].Price; NmChp := MyTov[i].TName;
    43.      End;
    44.      If PrExp < MyTov[i].Price Then Begin
    45.        PrExp := MyTov[i].Price; NmExp := MyTov[i].TName;
    46.      End;
    47.   End;
    48.  
    49. {  Отсортируем элементы по кол-ву }
    50.   For i := 1 To n Do Begin
    51.      For k := n - 1 DownTo i Do Begin
    52.         If MyTov[k].Quant > MyTov[k + 1].Quant Then Begin
    53.           Tmp := MyTov[k];
    54.           MyTov[k] := MyTov[k + 1];
    55.           MyTov[k + 1] := Tmp;
    56.         End;
    57.      End;
    58.   End;
    59.  
    60. ClrScr;
    61.  
    62. { 1.  Выведем перечень ср. стоимости по каждому из
    63.     товаров упорядченное по кол-ву  }
    64.   For i := 1 To n Do Begin
    65.      WriteLn ( MyTov[i].PriSr:4:4 );
    66.   End;
    67.   WriteLn;
    68.  
    69. { 2.  Выведем имя дорогого и дешёвого товара  }
    70.   WriteLn ('Imya deshevogo : ', NmChp);
    71.   WriteLn ('Imya dorogogo  : ', NmExp);
    72.   WriteLn;
    73.  
    74. { 3.  Выведем перечень втоваров, цена которых
    75.     находится в заданном диапазоне }
    76.   For i := 1 To n Do Begin
    77.      If (MyTov[i].Price >= MinPr) And (MyTov[i].Price <= MaxPr) Then
    78.      WriteLn ( MyTov[i].TName );
    79.   End;
    80.  
    81. End.
    Обучение прикладному программированию(по skype), качественно, недорого, 18+, вопросы в личку.
    «Если вы ничего не сделаете, я уверяю вас, ничего и не произойдёт» © Жак Фреско
    Ограниченно модерирую.
    Ответить с цитированием  
     

Информация о теме
Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Pascal
    от Катюха в разделе Turbo Pascal
    Ответов: 3
    Последнее сообщение: 13.11.2014, 18:56
  2. Срочно!!! Помогите пожалуйста решить задачу на Pascal/е
    от Шамсик Сердеров в разделе Turbo Pascal
    Ответов: 12
    Последнее сообщение: 14.03.2014, 21:25
  3. Шифрование. Pascal.
    от Юрий Косурин в разделе Turbo Pascal
    Ответов: 1
    Последнее сообщение: 18.05.2013, 02:31
  4. Ответов: 0
    Последнее сообщение: 14.02.2012, 20:36
  5. Помогите перевести на BASIC с Pascal
    от Denis в разделе QBasic
    Ответов: 0
    Последнее сообщение: 24.01.2012, 19:08
Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •