Это таблица истинности для логических функций. Галочка вверх означает логическое И, галочка вниз - логическое ИЛИ, уголок перед переменной - логическое НЕ. Это тема обширная, и так что если я представлю здесь решение это все равно вам не понять. Вам нужно почитать о логических функциях и таблицах истинности.
Вот как выглядит решение. Поставляем значения из таблицы истинности в варианты функций. Та функция, результат которой совпадает с результатом из таблицы, является ответом. В данном случае это номер 2
Внимание! Если программа не работает, обновите версию!
type
tТовар=record
Название:string[32];
Цена:real;
Количество:real; // может быть в килограммах или тоннах
Поставщик:string[32]
end;
begin
var b:tТовар;
var f:file of tТовар;
// создаем (или чистим), а затем заполняем файл
Rewrite(f,'Товары.typ');
loop ReadlnInteger('Количество товаров:') do begin
Writeln('Введите информацию по очередному товару');
b.Название:=ReadlnString('Название:');
(b.Цена,b.Количество):=ReadlnReal2('Цена товара и его количество:');
b.Поставщик:=ReadlnString('Поставщик:');
Write(f,b)
end;
f.Close;
// работаем с файлом
Reset(f);
var nf:=Trim(ReadlnString('Какой поставщик интересует?'));
while not eof(f) do begin
Read(f,b);
if Trim(b.Поставщик)=nf then
Println(b.Название,b.Цена,b.Количество)
end;
f.Close
end.