• Предмет: Информатика
  • Автор: srshibamoving
  • Вопрос задан 5 месяцев назад

Даны целое число n и массив, содержащий n элементов. Элементами массива являются записи, которые хранятся в текстовом файле и компонентами которого являются а) фамилии б) имена потребителей электроэнергии в) предыдущее показание счетчика, г) последнее показание счетчика. Выведите фамилии абонентов, потребление электроэнергии которых находится в заданном диапазоне [a,b]. Нарисуйте блок-схему и напишите программу на языке Turbo Pascal.

Ответы

Ответ дал: honvert
1

Ответ:

Блок-схема алгоритма может выглядеть следующим образом:

Считывание целого числа n и массива, содержащего n элементов.

Считывание значений a и b.

Цикл for, в котором итератор проходит по всем элементам массива.

Внутри цикла проверка условия, находится ли потребление электроэнергии абонента в диапазоне [a,b]. Если условие истинно, то вывод фамилии абонента.

Конец цикла.

Программа:

const

 N = 100; // максимальное количество записей

type

 TSubscriber = record

   surname: string[20];

   name: string[20];

   previous_reading: integer;

   current_reading: integer;

 end;

var

 subscribers: array[1..N] of TSubscriber;

 n: integer; // фактическое количество записей

 a, b: integer; // диапазон энергопотребления

begin

 // читаем массив записей

 readln(n);

 for i := 1 to n do begin

   readln(subscribers[i].surname, subscribers[i].name, subscribers[i].previous_reading, subscribers[i].current_reading);

 end;

 // считываем диапазон энергопотребления

 readln(a, b);

 // выводим фамилии абонентов, энергопотребление которых находится в диапазоне [a,b]

 for i := 1 to n do begin

   if (subscribers[i].previous_reading < subscribers[i].current_reading) and (subscribers[i].current_reading - subscribers[i].previous_reading >= a) and (subscribers[i].current_reading - subscribers[i].previous_reading <= b) then begin

     writeln(subscribers[i].surname);

   end;

 end;

end.

Вас заинтересует