"Попытка присвоить переменной типа 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.

Объяснение кода листинга программы

  1. Объявление переменных и массивов:
    • x: массив из 100 целых чисел, представляющий собой квадратную матрицу 10x10;
    • i, j: счётчики строк и столбцов;
    • N, M: числа для поиска;
    • l: массив из 4 целых чисел, используемый для хранения сумм элементов различных областей матрицы.
  2. Определение функции GetSum:
    • функция принимает четыре аргумента типа integer (sX, eX, sY, eY), которые определяют диапазон элементов матрицы для суммирования;
    • внутри функции используются три вложенных цикла, которые суммируют все элементы в указанном диапазоне;
    • значение суммы сохраняется в переменной r и возвращается из функции.
  3. Основной цикл программы:
    • в первой части происходит заполнение матрицы случайными числами;
    • во второй части программа запрашивает у пользователя два числа (N и M) и проверяет их корректность (не меньше 1 и не больше 10);
    • если числа некорректны, программа выводит сообщение об ошибке и завершается;
    • в третьей части программы выводятся элементы матрицы, помеченные звездочкой, если они соответствуют N и M;
    • в четвёртой части программы вычисляются суммы элементов различных областей матрицы и сохраняются в переменной l;
    • в пятой части программы выводятся суммы элементов различных областей матрицы. Код не содержит явных ошибок, но для его корректной работы необходимо убедиться, что пользователь вводит два корректных числа (больше или равных 1 и меньше или равных 10).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.667 из 5
Похожие ответы