
Вопрос задан 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.

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

Отвечает Ыбырай Бейбарыс.
Ответ:
Name: string[30];
Capital: string[30];
Language: string[30];
Currency: string[30];
Area: integer;
Population: integer;
попробуй это поставить после Var и убери после них end.
Объяснение:



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
В вашем коде есть несколько проблем, которые приводят к ошибкам. Вот они:
- Отсутствие оператора
begin..end
после условияif a.Area
. Вам необходимо добавить операторthen
перед блокомbegin
:
pascalif a.Area < min then begin min := a.Area; s := a; end;
- Ошибки в циклах. У вас есть циклы, которые выполняются дважды (от 1 до 2), но по условию ввода вы хотите ввести 5 стран. Исправьте циклы следующим образом:
pascalfor i := 1 to 5 do begin // ... ваш код для ввода данных end;
- Открытие файла для записи и запись данных в него. Ваш код должен выглядеть так:
pascalassign(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);
- Указание неправильного количества стран в другом месте кода. Исправьте:
pascalwriteln('Количество стран - 5');
Также учтите, что вы используете файловые операции на переменной country
, но не открываете файл для чтения перед этими операциями. Правильный порядок операций должен быть таким:
- Открытие файла для записи (
rewrite
). - Ввод и запись данных в файл.
- Закрытие файла для записи (
close
). - Открытие файла для чтения (
reset
). - Чтение данных из файла.
- Закрытие файла для чтения.
Исправив все эти ошибки, ваш код должен заработать корректно.


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

Информатика 47

Информатика 33

Информатика 67

Информатика 18

Информатика 25

Информатика 563

Информатика 16
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili