Предмет: Информатика,
автор: Vlad2422
Что я делаю неправильно в задаче по иформатике?! Помогите плиз! Очень срочно!!!
Задача: "Занесите информацию о десяти европейских странах n(название страны), k(численность населения), s(площадь страны). Выведите названия стран в порядке возрастания плотности их населения."
program n_58;
var s: array[1..10] of real=(244.1,357,132,43.1,504.8,301.2,312.7,92.0,337,551);
n: array[1..10] of string;
i,imin,j: integer;
x: real;
r: string;
const
k: array[1..10] of real=(58100,81200,10300,5190,39100,57200,38500,9800,5060,57800);
begin
n[1]:='Великобритания';n[2]:='Германия';n[3]:='Греция';n[4]:='Дания';n[5]:='Испания';n[6]:='Италия';n[7]:='Польша';n[8]:='Португалия';
n[9]:='Финляндия';n[10]:='Франция';
for i:=1 to 9 do
begin
imin:=i;
for j:=i+1 to 10 do
begin
if s[j]=s[i] then x:=s[i];
s[i]:=s[imin];
s[imin]:=x;
r:=n[i];
n[i]:=n[imin];
n[imin]:=r;
end;
end;
for i:=1 to 10 do
writeln(n[i], ' ', s[i]);
end.
Giammy:
какая ошибка?
Невозможно преобразовать тип real к типу boolean
Вам обязательна сортировка выбора минимального?
Вообщем вы не против если я переделаю немного ваш код?
Ответы
Автор ответа:
1
program n_58;
var
s: array[1..10] of real = (244.1, 357, 132, 43.1, 504.8, 301.2, 312.7, 92.0, 337, 551); // площадь
gn: array[1..10] of real; // густота населения
k: array[1..10] of real = (58100, 81200, 10300, 5190, 39100, 57200, 38500, 9800, 5060, 57800); // количество
n: array[1..10] of string = ('Великобритания', 'Германия', 'Греция', 'Дания', 'Испания', 'Италия', 'Польша', 'Португалия', 'Финляндия', 'Франция');
i, j: integer;
x: real;
r: string;
begin
for i := 1 to 10 do gn[i] := k[i] / s[i];
for i := 1 to 10 do
for j := i + 1 to 10 do
if gn[i] > gn[j] then
begin
x := gn[j];gn[j] := gn[i];gn[i] := x;
r := n[j];n[j] := n[i];n[i] := r;
end;
for i := 1 to 10 do writeln(n[i], ' ', gn[i]:0:2);
end.
var
s: array[1..10] of real = (244.1, 357, 132, 43.1, 504.8, 301.2, 312.7, 92.0, 337, 551); // площадь
gn: array[1..10] of real; // густота населения
k: array[1..10] of real = (58100, 81200, 10300, 5190, 39100, 57200, 38500, 9800, 5060, 57800); // количество
n: array[1..10] of string = ('Великобритания', 'Германия', 'Греция', 'Дания', 'Испания', 'Италия', 'Польша', 'Португалия', 'Финляндия', 'Франция');
i, j: integer;
x: real;
r: string;
begin
for i := 1 to 10 do gn[i] := k[i] / s[i];
for i := 1 to 10 do
for j := i + 1 to 10 do
if gn[i] > gn[j] then
begin
x := gn[j];gn[j] := gn[i];gn[i] := x;
r := n[j];n[j] := n[i];n[i] := r;
end;
for i := 1 to 10 do writeln(n[i], ' ', gn[i]:0:2);
end.
Если будет ошибка из-за пробелов пишите
Хорошо
Заранее спасибо
Похожие вопросы
Предмет: Қазақ тiлi,
автор: nuraikashaken
Предмет: Биология,
автор: aleksei552
Предмет: Геометрия,
автор: thisiscool2208
Предмет: Химия,
автор: Annabell98