Программа, которая в режиме запроса вводит записи и помещает их в файл - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Написать программу, которая в режиме запроса вводит записи и помещает их в файл. Сведения о телевизорах вводятся с новой строки для каждого поля.

Телевизор 1

Марка.........А Цена.........1000 Диагональ.........51 Производитель: Завод.........З Город.........Москва Директор.........Вася

Телевизор 2

.....

Телевизор 3

.....

После ввода записей программа осуществляет поиск следующей информации:

-Марки телевизора с размером по диагонали более 50

Решение задачи: «Программа, которая в режиме запроса вводит записи и помещает их в файл»

textual
Листинг программы
uses crt;
type
  TV = record
    mark: char;
    price, diag: integer;
    manufact: record
      factory: byte;
      city, director: string;
    end;
  end;
 
procedure Diag50(f: text);
var
  i: integer;
  s, mark: string;
  diag, x: integer;
  t: TV;
begin
  reset(f);
  while not eof(f) do begin
    readln(f, s);
    if (copy(s, 1, 5) = 'Марка') then mark := copy(s, 11, 1);
    if (copy(s, 1, 9) = 'Диагональ') then begin
      val(copy(s, 15, length(s) - 14), diag, x);
      if diag > 50 then write(mark, ', ');
    end;
  end;
  writeln;
  close(f);
end;
 
var
  t: array [1..10] of TV;
  i, n: byte;
  f: text;
  path: string;
 
begin
  clrscr;
  path := 'C:\1\file.txt';
  assign(f, path);
  write('Количество записей: ');
  readln(n);
  rewrite(f);
  for i := 1 to n do
    with t[i] do begin
      clrscr;
      writeln('Информация о ', i, ' телевизоре:'); writeln(f, 'Телевизор ', i);
      write('Марка: '); readln(mark); writeln(f, 'Марка.....', mark);
      write('Цена: '); readln(price); writeln(f, 'Цена.....', price);
      write('Диагональ: '); readln(diag); writeln(f, 'Диагональ.....', diag);
      writeln('Производитель:'); writeln(f, 'Производитель:');
      write('Завод: '); readln(manufact.factory); writeln(f, 'Завод.....', manufact.factory);
      write('Город: '); readln(manufact.city); writeln(f, 'Город.....', manufact.city);
      write('Директор: '); readln(manufact.director); writeln(f, 'Директор.....', manufact.director);
    end;
  close(f);
  clrscr;
  write('Телевизоры с диагональю больше 50: ');
  Diag50(f);
end.

Объяснение кода листинга программы

  1. Объявлены переменные: i, s, mark, diag, x, t, n, f, path.
  2. Задан путь к файлу и открыта запись в файл.
  3. Пользователю предлагается ввести количество записей.
  4. Создается цикл, который выполняет ввод данных для каждой записи.
  5. Для каждой записи выполняется вывод информации о записи на экран и запись информации в файл.
  6. Для каждой записи запрашивается и записывается информация о марке, цене, диагонали, производителе (заводе, городе, директоре).
  7. Закрывается файл для записи.
  8. Выполняется очистка экрана.
  9. Выводится сообщение о телевизорах с диагональю больше 50.
  10. Выполняется процедура Diag50, которая считывает информацию из файла и выводит сообщение о телевизорах с диагональю больше 50.
  11. Закрывается файл.
  12. Программа завершается.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.1 из 5
Похожие ответы