"Попытка присвоить переменной типа integer выражение типа char" - PascalABC.NET
Формулировка задачи:
в общем тут в конце нужно присвоить не "66666" а "звездочки" пишет что: попытка присвоить переменной типа интеджер выражение типа чар
как сделать?
Решение задачи: «"Попытка присвоить переменной типа integer выражение типа char"»
textual
Листинг программы
program laba1;
var
x:array [1..10,1..10] of integer;
i, j : integer; // Счётчики строк и столбцов.
N, M : integer; // Число для поиска.
var l: array[1..4] of integer;
function GetSum(sX,eX,sY,eY: integer): integer;
var
r,i,j: integer;
begin
r := 0;
for i:=sY to eY do
for j:=sX to eX do
Inc(r , x[i,j]);
GetSum := r;
end;
begin
// Формирование матрицы.
for i:=1 to 10 do
for j:=1 to 10 do X[i,j]:= random(100);
// Печать матрицы.
writeln;
writeln('Сгенерированная матрица:');
for i:=1 to 10 do
begin for j:=1 to 10 do write(X[i,j]:5);
writeln;
end;
// Запрос и ввод числа для поиска.
writeln;
writeln('Введите 2 целых положительных числа');
writeln('для поиска строк и столбцов матрицы');
write ('N=');
readln (N);
write ('M=');
read (M);
// Проверка корректности введённого числа.
if (N>i)or(M>j)or(N<1)or(M<1)
then begin // Сообщение пользователю и завершение программы.
writeln;
writeln('Введённое число некорректно.');
writeln('Программа завершает свою работу.');
exit;
end;
for i:=1 to 10 do begin
writeln;
for j:=1 to 10 do begin
if ( i = N ) then
write('***':5)
else if ( j = M ) then
write('***':5)
else
write(X[i,j]:5);
end;
end;
l[1] := GetSum(1 , M-1 , 1 , N-1);
l[2] := GetSum(M+1 , 10 , 1 , N-1);
l[3] := GetSum(1 , M-1 , N+1 , 10 );
l[4] := GetSum(M+1 , 10 , N+1 , 10 );
writeln;
writeln('Сумма элементов верхней левой области равна ' , l[1]);
writeln('Сумма элементов верхней правой области равна ' , l[2]);
writeln('Сумма элементов нижней левой области равна ' , l[3]);
writeln('Сумма элементов нижней правой области равна ' , l[4]);
end.
Объяснение кода листинга программы
- Объявление переменных и массивов:
- x: массив из 100 целых чисел, представляющий собой квадратную матрицу 10x10;
- i, j: счётчики строк и столбцов;
- N, M: числа для поиска;
- l: массив из 4 целых чисел, используемый для хранения сумм элементов различных областей матрицы.
- Определение функции GetSum:
- функция принимает четыре аргумента типа integer (sX, eX, sY, eY), которые определяют диапазон элементов матрицы для суммирования;
- внутри функции используются три вложенных цикла, которые суммируют все элементы в указанном диапазоне;
- значение суммы сохраняется в переменной r и возвращается из функции.
- Основной цикл программы:
- в первой части происходит заполнение матрицы случайными числами;
- во второй части программа запрашивает у пользователя два числа (N и M) и проверяет их корректность (не меньше 1 и не больше 10);
- если числа некорректны, программа выводит сообщение об ошибке и завершается;
- в третьей части программы выводятся элементы матрицы, помеченные звездочкой, если они соответствуют N и M;
- в четвёртой части программы вычисляются суммы элементов различных областей матрицы и сохраняются в переменной l;
- в пятой части программы выводятся суммы элементов различных областей матрицы. Код не содержит явных ошибок, но для его корректной работы необходимо убедиться, что пользователь вводит два корректных числа (больше или равных 1 и меньше или равных 10).