Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
 Аватар для Prosto_Iren
7 / 7 / 0
Регистрация: 08.04.2011
Сообщений: 79

Процедуры ввода, вывода, сортировки, составления

10.04.2011, 11:17. Показов 1538. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача
1.1. Используя процедуру ввода произвольной целочисленной матрицы ввести квадратные целочисленные матрицы А и В одинаковой размерности N (N<=10). Вывести матрицы А и В на экран.
1.2. Получить матрицу С, в которой нечетные строки взяты из В, а четные строки - из А, и вывести на экран.
1.3. Сформировать вектор В, содержащий положительные элементы указанных столбцов матрицы С. вывести вектор D на экран.
1.4. Упорядочить вектор D по убыванию и вывести на экран.

Помогите найти ошибки в программе.

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
program cc;
type mas=array [1..10,1..10] of integer;
     vector=array [1..10] of integer;
     var A,B,C:mas; d:vector;
     i,j,n:integer;
procedure vvodA (n:integer; var x:mas);
begin
     writeln('Введите n');
     readln(n);
     randomize;
     for i:=1 to n do begin
     for j:=1 to n do begin
     x[i,j]:=random (10)-3;
     write (x[i,j]:4);
     end;
     writeln;
     end;
     writeln;
     end;
procedure vvodB (n:integer; var y:mas);
begin
     writeln('ўўҐ¤ЁвҐ n');
     readln(n);
     randomize;
     for i:=1 to n do begin
     for j:=1 to n do begin
     y[i,j]:=random (10)-3;
     write (y[i,j]:4);
     end;
     writeln;
     end;
     writeln;
     end;
procedure sostC (n:integer; x,y:mas; var z:mas);
begin
     for i:=1 to n do begin
     if ((i div 2)=0) then begin
     for j:=1 to n do
     z[i,j]:=x[i,j]; end
     else for j:=1 to n do
     z[i,j]:=y[i,j];end;
end;
procedure sostD (n:integer; z:mas; var v,p:vector; var s,k:integer);
begin
     s:=0;
     repeat
     writeln('введите номера столбцов');
     readln (p[k]);
     k:=k+1;
     until p[k]=0;
     while p[k]<>0 do begin
     if j=(p[k]) then
     if z[i,j]>0 then v[s]:=z[i,j];end;
     s:=s+1;
end;
procedure sortir (k:integer; var w:vector);
var q:integer;
begin
     for i:=1 to k-1 do
    for j:=k-1 downto i do
    if w[j]<w[j+1] then
    begin
    q:=w[j+1];
    w[j+1]:=w[j];
    w[j]:=q;   end;
end;
procedure vivod (k:integer; w:vector);
begin
for j:=1 to k do write(w[j],' ');
end;
begin
vvodA (n,A);
vvodB (n,B);
sostC (n,A,B);
vivod (n,D);
writeln;
sostD (n,C,D,p);
vivod (n,D);
writeln;
end.
Добавлено через 18 часов 54 минуты
пожалуйста, поищите ошибки=(
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.04.2011, 11:17
Ответы с готовыми решениями:

Назовите основные процедуры ввода\вывода языка
1. Какую структуру имеет программа на Языке Turbo Pascal? 2. Назовите основные процедуры ввода\вывода языка Turbo Pascal. 3. Каково...

Процедуры ввода и вывода элементов матрицы по строкам
Использовать процедуры ввода и вывода элементов матрицы по строкам.Определите номера строк в матрице, в которых элементов, принадлежащих...

Нужен пример процедуры ввода и вывода одномерного массива
Напишите обыкновенный пример процедуры ввода и вывода одномерного массива!

8
 Аватар для nuHrBuH
483 / 427 / 205
Регистрация: 04.03.2011
Сообщений: 1,259
10.04.2011, 11:25
А зачем ты двумя одинаковыми процедурами вводишь матрицы?
Цитата Сообщение от Prosto_Iren Посмотреть сообщение
if ((i div 2)=0) then begin
Функция див возвращает целое число, в данном случае нужно испольновать mod
А это точно не зацикливается?
while p[k]<>0 do begin
1
 Аватар для Prosto_Iren
7 / 7 / 0
Регистрация: 08.04.2011
Сообщений: 79
10.04.2011, 11:35  [ТС]
нет зацикливания не происходит
при выполнении программы выдает ошибку вот в этой строчке:
Цитата Сообщение от Prosto_Iren Посмотреть сообщение
sostD (n,C,D,p);
если ее закомментить, то программа выполняется, но на экран выводятся только Матрицы А и В
0
 Аватар для nuHrBuH
483 / 427 / 205
Регистрация: 04.03.2011
Сообщений: 1,259
10.04.2011, 11:43
Цитата Сообщение от Prosto_Iren Посмотреть сообщение
s:=0;
repeat
writeln('введите номера столбцов');
readln (p[k]);
k:=k+1;
until p[k]=0;
while p[k]<>0 do begin
if j=(p[k]) then
if z[i,j]>0 then v[s]:=z[i,j];end;
s:=s+1;
А этот кусок я бы переписал:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  repeat
   writeln('vvedite stlobcy : ');read(p[k]);
    if (p[k] > n)
       then
            write('vvedite korrektniy nomer tolbca : ')
       else
            k := k + 1;
  until p[k] = 0;
 k := 0; 
  for i:=1 to n do
    for j:=1 to n do
        if (j = p[k] ) and
           (z[i,j] > 0)
           then
                begin
                     v[i_] := z[i,j]l
                     i_ := i_ + 1;
                end;
Добавлено через 1 минуту
Цитата Сообщение от Prosto_Iren Посмотреть сообщение
нет зацикливания не происходит
при выполнении программы выдает ошибку вот в этой строчке:


если ее закомментить, то программа выполняется, но на экран выводятся только Матрицы А и В
Хех, у тебя в заголовке процедуры описано 6 переменных, а при вызове процедуры ты пишешь 4
1
 Аватар для SuPeR XaKer
2857 / 1986 / 788
Регистрация: 23.09.2010
Сообщений: 4,876
10.04.2011, 12:09
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
100
101
102
103
104
105
106
107
108
program cc;
type
 mas=array [1..10,1..10] of integer;
 vector=array [1..100] of integer;
var
 A,B,C:mas;
 d:vector;
 i,j,n,kol:integer;
 
procedure vvodAB(Var x:mas; n:integer);
begin
 randomize;
 for i:=1 to n do
   for j:=1 to n do
     x[i,j]:=random (10)-3;
end;
 
procedure print(Var x:mas; n:integer; s:char);
begin
 writeln('Ìàññèâ ',s);
 for i:=1 to n do
  begin
   for j:=1 to n do
     write (x[i,j]:4);
   writeln;
  end;
writeln;
end;
 
procedure sostC (Var n:integer; x,y:mas; var z:mas);
begin
 for i:=1 to n do
  begin
   if i mod 2=0 then
   for j:=1 to n do
    z[i,j]:=x[i,j]
   else
   for j:=1 to n do
    z[i,j]:=y[i,j];
   end;
end;
 
procedure sostD(Var z:mas; n:integer; var p:vector);
Var
 k,l:integer;
 b:array[1..100] of integer;
begin
repeat
 write('Ââåäèòå íîìåð íà÷àëüíîãî ñòîëáöà: ');
 readln(k);
until k in [1..n];
repeat
 write('Ââåäèòå íîìåð êîíå÷íîãî ñòîëáöà: ');
 readln(l);
until l in [1..n];
kol:=0;
repeat
 for i:=1 to n do
 begin
  if z[i,k]>0 then
  begin
   inc(kol);
   b[kol]:=z[i,k];
  end;
 end;
 inc(k);
until k>l;
p:=b;
end;
 
procedure sortirovka(Var w:vector; k:integer);
var
 q:integer;
begin
 for i:=1 to k-1 do
 for j:=i to k do
 if w[i]<w[j+1] then
 begin
  q:=w[j+1];
  w[j+1]:=w[i];
  w[i]:=q;
 end;
end;
 
procedure vivod(k:integer; w:vector);
begin
writeln;
for j:=1 to k do
 write(w[j],' ');
end;
 
begin
 repeat
  writeln('¢¢¥¤¨â¥ n');
  readln(n);
 until n in [1..10];
 vvodAB(a,n);
 Print(a,n,'A');
 vvodAB(b,n);
 Print(b,n,'B');
 sostC (n,A,B,C);
 Print(c,n,'C');
 sostD (C,n,d);
 vivod (kol,d);
 sortirovka(d,kol);
 vivod (kol,d);
 readln
end.
Исправил.Но не проверял.
0
 Аватар для Prosto_Iren
7 / 7 / 0
Регистрация: 08.04.2011
Сообщений: 79
10.04.2011, 12:12  [ТС]
nuHrBuH, если переписать как вы сказали, он выдает ошибку, что процедура сортировки находится не в том месте

Добавлено через 2 минуты
SuPeR XaKer, при выполнении программы происходит не соответствие типов P:=b
0
 Аватар для SuPeR XaKer
2857 / 1986 / 788
Регистрация: 23.09.2010
Сообщений: 4,876
10.04.2011, 12:16
попробуй b:array[1..100] of integer;
изменить на b:vector;
0
 Аватар для Prosto_Iren
7 / 7 / 0
Регистрация: 08.04.2011
Сообщений: 79
10.04.2011, 12:24  [ТС]
SuPeR XaKer, все работает. Спасибо большое! очень выручили!=)
0
 Аватар для SuPeR XaKer
2857 / 1986 / 788
Регистрация: 23.09.2010
Сообщений: 4,876
10.04.2011, 14:20
Prosto_Iren
уберите
randomize;
из процедуры и поставьте в основном теле перед вводом размерности матриц.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.04.2011, 14:20
Помогаю со студенческими работами здесь

Дана цифра N . Удалить из записи каждого элемента массива эту цифру (при написании использовать процедуры ввода и вывода и подрограммой)
Дана цифра N . Удалить из записи каждого элемента массива эту цифру (при написании использовать процедуры ввода и вывода и подрограммой)

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

Используйте процедуры ввода и вывода элементов матрицы
HELP PLZ !!! Используйте процедуры ввода и вывода элементов матрицы. Подсчитайте количество строк матрицы А (nxn), элементы которых...

Напишите процедуры ввода и вывода элементов матрицы
Напишите процедуры ввода и вывода элементов матрицы T размерностью MxN.

Блок схема для процедуры ввода вывода чисел двухменого массива
uses crt; const nmax=20; type Vmatr=array of real;//вещественные Cmatr=array of integer;//целые procedure VvodV(var...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
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 . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru