Вопрос задан 11.07.2023 в 23:52. Предмет Информатика. Спрашивает Каримов Владислав.

Выдаёт ошибку программа, пробовал убирать read(country,a); , но там выдаёт информацию лишь об одной

стране, которую я вводил последнюю. ЧТо не так? program information; Type anketa=record Name: string[30]; Capital: string[30]; Language: string[30]; Currency: string[30]; Area: integer; Population: integer; end; var country: file of anketa; a,s: anketa; i,min:integer; Begin assign (country,'C:\Users\admin\PascalABC_zadachi\country.dat'); rewrite(country); writeln('Количество стран - 5'); for i:=1 to 2 do begin write(i:1,'-я страна:, Название - '); readln(a.Name); write('Столица - '); readln(a.Capital); write('Язык - '); readln(a.Language); write('Валюта - '); readln(a.Currency); write('Плошадь - '); readln(a.Area); write('Население - '); readln(a.Population); write(country,a); end; writeln; Begin for i:=1 to 2 do begin read(country,a); writeln('Название - ',a.Name,', ','Столица - ',a.Capital,', ','Валюта - ',a.Currency); end; end; writeln; Begin min:=100; writeln('Количество стран - 5'); for i:=1 to 2 do begin read(country,a); if a.Area begin min:=a.Area; s:=a; end; end; writeln(s); end; close(country); end.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Ыбырай Бейбарыс.

Ответ:

Name: string[30];

Capital: string[30];

Language: string[30];

Currency: string[30];

Area: integer;

Population: integer;

попробуй это поставить после Var и убери после них end.

Объяснение:

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

В вашем коде есть несколько проблем, которые приводят к ошибкам. Вот они:

  1. Отсутствие оператора begin..end после условия if a.Area. Вам необходимо добавить оператор then перед блоком begin:
pascal
if a.Area < min then begin min := a.Area; s := a; end;
  1. Ошибки в циклах. У вас есть циклы, которые выполняются дважды (от 1 до 2), но по условию ввода вы хотите ввести 5 стран. Исправьте циклы следующим образом:
pascal
for i := 1 to 5 do begin // ... ваш код для ввода данных end;
  1. Открытие файла для записи и запись данных в него. Ваш код должен выглядеть так:
pascal
assign(country, 'C:\Users\admin\PascalABC_zadachi\country.dat'); rewrite(country); writeln('Количество стран - 5'); for i := 1 to 5 do begin write(i:1, '-я страна:, Название - '); readln(a.Name); write('Столица - '); readln(a.Capital); write('Язык - '); readln(a.Language); write('Валюта - '); readln(a.Currency); write('Площадь - '); readln(a.Area); write('Население - '); readln(a.Population); write(country, a); end; close(country);
  1. Указание неправильного количества стран в другом месте кода. Исправьте:
pascal
writeln('Количество стран - 5');

Также учтите, что вы используете файловые операции на переменной country, но не открываете файл для чтения перед этими операциями. Правильный порядок операций должен быть таким:

  1. Открытие файла для записи (rewrite).
  2. Ввод и запись данных в файл.
  3. Закрытие файла для записи (close).
  4. Открытие файла для чтения (reset).
  5. Чтение данных из файла.
  6. Закрытие файла для чтения.

Исправив все эти ошибки, ваш код должен заработать корректно.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос