"Попытка присвоить переменной типа integer выражение типа char" - PascalABC.NET
Формулировка задачи:
Листинг программы
- program laba1;
- var
- x:array [1..10,1..10] of integer;
- i, j : integer; // Счётчики строк и столбцов.
- N, M : integer; // Число для поиска.
- 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)
- then begin // Сообщение пользователю и завершение программы.
- writeln;
- writeln('Введённое число некорректно.');
- writeln('Программа завершает свою работу.');
- exit;
- end;
- for i:=1 to 10 do begin
- writeln;
- for j:=1 to 10 do begin
- x[n,j]:=66666;
- x[i,m]:=66666;
- write(X[i,j]:5);
- end;
- end;
- end.
Решение задачи: «"Попытка присвоить переменной типа 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).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д