Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 3
Регистрация: 15.12.2017
Сообщений: 134

Ошибка в программе

17.12.2017, 10:15. Показов 401. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят, не могу понять почему программа выводит одну и ту же матрицу три раза, хотя данные должны выводиться разные.

Код основной программы:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
uses matrica;
var
  a: matr;
  i, j, k, u, b: byte;
 
begin
  Vvod(a, i, j);
  Vyvod(a, i, j);
  
  Umn(a, k);
  Vyvod(a, i, j);
  
  Zamena(a, u, b);
  Vyvod(a, i, j);
  
  MinMax(a, i, j);
end.
Код модуля:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
unit matrica;
 
interface
 
type
  matr = array[1..100, 1..100] of integer;
 
procedure Vvod(var mt: matr; var x, y: byte);
procedure Vyvod(var mt: matr; x, y: byte);
procedure Umn(var mt: matr; k: integer);
procedure Zamena(var mt: matr; t, r: byte);
procedure MinMax(mt: matr; x, y: byte);
 
implementation
 
procedure Vvod(var mt: matr; var x, y: byte);{создание матрицы, ее размеры}
var
  i, j, k: byte;
begin
  write('Количество строк = ');
  readln(x);
  write('Количество столбцов = ');
  readln(y);
  writeln('Матрица:');
  for i := 1 to x do
    for j := 1 to y do
      mt[i, j] := random(20) - 10;
end;
 
procedure Vyvod(var mt: matr; x, y: byte);{вывод матрицы на экран}
var
  i, j: byte;
begin
  for i := 1 to x do
  begin
    for j := 1 to y do
      write(mt[i, j]:4);
    writeln;
  end;
  writeln;
end;
 
procedure Umn(var mt: matr; k: integer);
var
  i, j, x, y: byte;
begin
  writeln('Умножение матрицы на число');
  writeln('Введите число, на которое нужно умножить матрицу:');
  readln(k);
  for i := 1 to x do
    for j := 1 to y do
      mt[i, j] := mt[i, j] * k;
end;
 
procedure Zamena(var mt: matr; t, r: byte);
var
  j, y: byte;
  x: integer;
begin
  writeln('Введите строки, которые нужно поменятьы');
  readln(t);
  readln(r);
  for j := 1 to y do
  begin
    x := mt[t, j];
    mt[t, j] := mt[r, j];
    mt[r, j] := x;
  end;
end;
 
procedure MinMax(mt: matr; x, y: byte);
var
i, j, z, q: byte;
min, max: integer;
begin
  min := mt[1, 1];
  for i := 1 to x do
    for j := 1 to y do
      if mt[i, j] < min then
      begin
        min := mt[i, j];
        z := i;
        q := j;
      end;
  writeln('min = ', min, '[', z, ',', q, ']');
  read;
  max := mt[1, 1];
  for i := 1 to x do
    for j := 1 to y do
      if mt[i, j] > max then
      begin
        max := mt[i, j];
        z := i;
        q := j;
      end;
  writeln('max = ', max, '[', z, ',', q, ']');
  read;
end;
end.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.12.2017, 10:15
Ответы с готовыми решениями:

Ошибка в программе
составить поставку,алгоритм и программу выдачи на экран в PASCALe неравных 3.2 значений функции t=ln(14.5q/152.9)+Sin5.3q на отрезке с...

Ошибка в программе
Не могу понять где ошибка, вроде все правильно. uses crt; const gg = #64; n = 15; m = 20; var pole: array of char; ...

Ошибка в программе
Добрый день. Поставлена задача: создать файл целых чисел; определить суммы цифр каждого числа и поместить в новый файл; компоненту с...

2
1 / 1 / 3
Регистрация: 15.12.2017
Сообщений: 134
19.12.2017, 14:32  [ТС]
У кого-нибудь есть умные мысли?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33193 / 21489 / 8233
Регистрация: 22.10.2011
Сообщений: 36,874
Записей в блоге: 12
19.12.2017, 15:22
Pascal
1
2
3
procedure Umn(var mt: matr; k: integer);
var
  i, j, x, y: byte; // значение локальных переменных x, y не имеет ничего общего с тем, что вводилось пользователем
, там хранится мусор, возможно - нули, поэтому матрица может не изменяться совсем, может измениться частично, а может и вылететь ошибка выхода за пределы массива. То же самое касается и Zamena.

Решение: в процедуры Umn и Zamena передавать значения x, y как параметры, а локальные описания убрать. Тогда все будет работать корректно.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.12.2017, 15:22
Помогаю со студенческими работами здесь

Ошибка в программе!!!
Здравствуйте, пожалуйста кто в массивах разбирается помогите исправить ошибку в программе!!! Дан целочисленный массив размера N....

Ошибка в программе
помогите пожалуйста, в чем ошибка ? вот сама прога program delenie; var size,l,b,n,i:integer; a: array of integer; procedure...

Ошибка в программе
ОШибка программа! PASCAlABC.net program demo; uses graphABC,crt; var gd,gm,t,s,maxx,maxy,i:integer; begin gd:=DETECT;

Ошибка в программе
program laba; type Link = ^Rec; Rec = Record Inf: Integer; Next: Link End; Tsp = Object

Ошибка в программе
program zadacha2_2; uses crt; Var m,n:integer; function fact(n:integer):real; Var i:integer; p:real; Begin p:=1; for i:=1...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru