С Новым годом! Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
 Аватар для SkyLine
2 / 2 / 2
Регистрация: 23.11.2009
Сообщений: 29

Процедуры. Дебаггинг.

23.11.2009, 17:34. Показов 980. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Собственно прошу помочь в отладке программы.
Задача: Сформировать массив К из положительных отношений элементов n-го и s-го столбцов массива.
Задачу без использования процедур решил, всё работает. А вот нужно сделать с процедурами, и тут проблемы. Программа компилируется, но не делает, то что должна делать. Матрица считывается из файла matr.txt. Вывод должен быть в файле matr.out. Вот код -->
Delphi
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
program Lab_6;
{$APPTYPE CONSOLE}
uses
  SysUtils;
 
const
    s = 1; //s и n столбцы, которые нужно переместить
    n = 4;
    MaxDim = 5;  // максимальный размер матрицы
type
    arr=array[1.. MaxDim,1.. MaxDim] of integer; // тип arr для массива А
           arr2=array[1..MaxDim] of real;
var
    A:arr;              // массив А
           K:arr2;                //массив K, тобишь куда будем записывать положительное часное от деления
    i,j:integer;        // счетчики по строкам, столбцам
    m:integer;          // размер квадратной матрицы
    fi,fo:text;         // файловые переменные
//-------------------------------------------------------------
//  Описание процедуры чтения массива из файла
//  f, a1, MaxD, m1 - формальные параметры
//
//  Исходные данные:
//      f  - файл исходных данных,
//         MaxD  - максимальная размерность массива a1
//
//  Результат:
//      заполненный массив a1 и его реальный размер - m1
//-------------------------------------------------------------
Procedure ReadFromFile(var f:text;var A1:arr;MaxD:integer; var m1:integer);
Var
    i,j:integer; // счетчики по строкам, столбцам - локальные переменные
begin
    Readln(f,m1);       // чтение размера матрицы из первой строки файла
    if m1>MaxD then  // проверка размера матрицы
begin
            m1:=MaxD;
            Writeln('Матрица из файла урезана до размера массива');
    end;
 
    for i:=1 to m1 do       // чтение из файла матрицы А
    begin
            for j:=1 to m1 do Read(f,A1[i,j]);
                Readln(f);  // перевод указателя файла на новую строку
    end;
end;
//-------------------------------------------------------------
//  заполнение массива K
//
//  Исходные данные: массив a1 и его реальный размер - m1.
//-------------------------------------------------------------
Procedure Schet(Var a1:arr; m1:word; s1,n1:integer; var k: arr2);
Var
    i: word;// счетчик по строкам
begin
    For i:=1 to m1 do       //проверка условия и заполнение массива k
       if (a1[s1,i]/a1[n1,i])>0 then k[i]:=(a1[s1,i]/a1[n1,i]);
end;
//-------------------------------------------------------------
//  описание процедуры вывода результата в файл и на экран
//
//  Исходные данные:
//  f - файл для сохранения результата,
//  Результат  - вывод результатов программы в файл и на экран
//-------------------------------------------------------------
Procedure SaveToFile(var f:text; var m1:integer; var k:arr2);
    Var i:integer;
begin
    For i:=1 to m1 do begin
     Writeln(f,'k[',k[i],']=') end;
    For i:=1 to m1 do begin
     Writeln('k[',k[i],']=') end;
end;
begin
    AssignFile(fi,'matr.txt');      // Файловой переменной fi назначается файл matr.txt
           Reset(fi);          // Текстовый файл открывается для чтения
    // чтение данных из файла fi;
    //  A, MaxDim, m - фактические параметры
    ReadFromFile(fi,A,MaxDim,m);
    CloseFile(fi);      // Закрывается прочитанный файл fi
    // вызов процедуры решения основной задачи
    Schet(A,m,s,n,k);
    // Файловой переменной fo назначается файл matr.out
    AssignFile(fo,'matr.out');
    Rewrite(fo);        // Текстовый файл fo открывается для записи
    // вызов процедуры вывода результатов в файл
    SaveToFile(fo,m,k);
    CloseFile(fo);          // Закрывается файл fo,созданный программой
    WriteLn('***** Press <ENTER> to finish *****');
    Readln;         // задержка экрана
end.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.11.2009, 17:34
Ответы с готовыми решениями:

Процедуры и функции: решить через процедуры S=a*x+b*y+c*z.
Пожалуста помогите решить через процедуры S=a*x+b*y+c*z.

Процедуры и функции. Процедуры с числовыми параметрами
Описать процедуру RectPS (x1, y1, x2, y2, P, S), вычисляющую периметр P и площадь S прямоугольника со сторонами, параллельными осям...

Использование имени процедуры в качестве параметра другой процедуры
Составить программу по заданному условию.Первая часть условия является заданием на разработку процедуры для любой функции f или пары...

1
 Аватар для SkyLine
2 / 2 / 2
Регистрация: 23.11.2009
Сообщений: 29
23.11.2009, 22:09  [ТС]
Спасибо за помощь
Всё работает, просто файл matr.txt нужно было заполнять вот так:
N
a b c d
e f g h
l m o p
r s u f

Где, N размерность матрицы m, а всё остальное ессно матрица.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.11.2009, 22:09
Помогаю со студенческими работами здесь

Использование имени процедуры в качестве параметра другой процедуры
Для заданного массива В составить процедуру, определяющую отрезок, на который попадают заданного массива Р. Применить процедуру для k...

Оформить программу с помощью процедуры ввода массива и процедуры вывода массива на экран.
Program Primer1; uses crt; var a: array of integer; i: integer; Begin clrscr; for i:=1 to 5 do begin write('a=');...

Использование имени процедуры в качестве параметра другой процедуры
Help! Для массива С из n элементов составить процедуру, которая находит значения m наименьших его элементов (Z1, Z2,...,Zn, а также сумму...

Нужно заменить процедуры с параметрами, на процедуры без параметров
program p20A; uses CRT; type mas=array of integer; var X,Y: mas; N,i,m: integer; procedure zm (var q:mas); var a,b:...

Использование имени процедуры в качестве параметра другой процедуры
Предложите, пожалуйста, пример решения след. задачи с использованием вышеуказанного условия: Составить процедуру, которая для...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru