"Попытка присвоить переменной типа integer выражение типа char" - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Листинг программы
  1. program laba1;
  2. var
  3. x:array [1..10,1..10] of integer;
  4. i, j : integer; // Счётчики строк и столбцов.
  5. N, M : integer; // Число для поиска.
  6. begin
  7. // Формирование матрицы.
  8. for i:=1 to 10 do
  9. for j:=1 to 10 do X[i,j]:= random(100);
  10. // Печать матрицы.
  11. writeln;
  12. writeln('Сгенерированная матрица:');
  13. for i:=1 to 10 do
  14. begin for j:=1 to 10 do write(X[i,j]:5);
  15. writeln;
  16. end;
  17. // Запрос и ввод числа для поиска.
  18. writeln;
  19. writeln('Введите 2 целых положительных числа');
  20. writeln('для поиска строк и столбцов матрицы');
  21. write ('N=');
  22. readln (N);
  23. write ('M=');
  24. read (M);
  25. // Проверка корректности введённого числа.
  26. if (N>i)or(M>j)
  27. then begin // Сообщение пользователю и завершение программы.
  28. writeln;
  29. writeln('Введённое число некорректно.');
  30. writeln('Программа завершает свою работу.');
  31. exit;
  32. end;
  33.  
  34. for i:=1 to 10 do begin
  35. writeln;
  36. for j:=1 to 10 do begin
  37. x[n,j]:=66666;
  38. x[i,m]:=66666;
  39. write(X[i,j]:5);
  40. end;
  41. end;
  42. end.
в общем тут в конце нужно присвоить не "66666" а "звездочки" пишет что: попытка присвоить переменной типа интеджер выражение типа чар как сделать?

Решение задачи: «"Попытка присвоить переменной типа integer выражение типа char"»

textual
Листинг программы
  1. program laba1;
  2. var
  3. x:array [1..10,1..10] of integer;
  4. i, j : integer; // Счётчики строк и столбцов.
  5. N, M : integer; // Число для поиска.
  6.  
  7. var l: array[1..4] of integer;
  8.  
  9. function GetSum(sX,eX,sY,eY: integer): integer;
  10. var
  11.   r,i,j: integer;
  12. begin
  13.  r := 0;
  14.   for i:=sY to eY do
  15.     for j:=sX to eX do
  16.       Inc(r , x[i,j]);
  17.   GetSum := r;  
  18. end;
  19.  
  20. begin
  21.  // Формирование матрицы.
  22.   for i:=1 to 10 do
  23.   for j:=1 to 10 do X[i,j]:= random(100);
  24.  
  25.   // Печать матрицы.
  26.   writeln;
  27.   writeln('Сгенерированная матрица:');
  28.   for i:=1 to 10 do
  29.   begin for j:=1 to 10 do write(X[i,j]:5);
  30.         writeln;
  31.   end;
  32.  
  33.   // Запрос и ввод числа для поиска.
  34.   writeln;
  35.   writeln('Введите 2 целых положительных числа');
  36.   writeln('для поиска строк и столбцов матрицы');
  37.   write  ('N=');
  38.   readln (N);
  39.   write ('M=');
  40.   read (M);
  41.  
  42.   // Проверка корректности введённого числа.
  43.   if (N>i)or(M>j)or(N<1)or(M<1)
  44.   then begin // Сообщение пользователю и завершение программы.
  45.              writeln;
  46.              writeln('Введённое число некорректно.');
  47.              writeln('Программа завершает свою работу.');
  48.              exit;
  49.        end;
  50.  
  51.  
  52.   for i:=1 to 10 do  begin
  53.     writeln;
  54.     for j:=1 to 10 do begin
  55.       if ( i = N ) then
  56.         write('***':5)
  57.        else if ( j = M ) then
  58.         write('***':5)
  59.        else        
  60.         write(X[i,j]:5);
  61.     end;
  62.   end;
  63.  
  64.  
  65.   l[1] := GetSum(1   , M-1 , 1   , N-1);
  66.   l[2] := GetSum(M+1 , 10  , 1   , N-1);
  67.   l[3] := GetSum(1   , M-1 , N+1 , 10 );
  68.   l[4] := GetSum(M+1 , 10  , N+1 , 10 );
  69.  
  70.  
  71.   writeln;
  72.   writeln('Сумма элементов верхней левой  области равна ' , l[1]);
  73.   writeln('Сумма элементов верхней правой области равна ' , l[2]);
  74.   writeln('Сумма элементов нижней  левой  области равна ' , l[3]);
  75.   writeln('Сумма элементов нижней  правой области равна ' , l[4]);
  76.  
  77.  
  78. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы