Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
3 / 3 / 1
Регистрация: 08.10.2011
Сообщений: 73
1

Сформировать массив В, каждый элемент которого равен первому латинскому символу соответствующей строки матрицы

04.11.2011, 22:11. Показов 1184. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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
{Дан массив А из N строк. Сформировать массив В, каждый элемент которого
 равен первому латинскому символу соответствующей строки. }
 
const nmax=20;
      mmax=20;
type mas1=array[1..nmax] of string[mmax]; {данный массив}
     mas2=array[1..nmax] of char; {массив из первых латинских символов}
     
Procedure VvodMas(var a:mas1; n,m:integer);
var i:integer;
Begin
  write('Введите количество строк (не больше 20) > ');
  readln(n);
  write('Введите длину строки (не больше 20) > ');
  readln(m);
  writeln('Введите ',n,'строк по ' ,m,' символов');
  for i:=1 to n do
     readln (a[i]);
end;
 
Procedure Sort(a:mas1; b:mas2; j,n,m:integer);
var i:integer;
Begin
{j - первый латинский символ}
  for i:=1 to n do
  begin
    j:=1;
    while (j<=m) and not(a[j] in ['A'..'Z','a'..'z']) do
       j:=j+1;
    if (j>m)and not(a[j] in ['A'..'Z','a'..'z']) then b[i]:='*'
      else b[i]:=a[i,j];
  end;
end;
 
Procedure Vyvod(b:mas2; n:integer);
var i:integer;
Begin
  for i:=1 to n do
     writeln(b[i]);
end;
 
var a:mas1; n,m:integer;
Begin
  VvodMas(a,n,m);
  Sort(a,b,j,m);
  Vyvod(b,n);
  readln;
 end.
процедура Sort не работает(((
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.11.2011, 22:11
Ответы с готовыми решениями:

Сформировать массив В, каждый элемент которого равен символу с минимальным порядковым номером в таблице ASCII соответствующей строки
Народ помогите пожалуйста. Который день не могу понять где косяк. Задание: Дан массив А из N...

Сформировать одномерный массив, каждый элемент которого равен количеству элементов соответствующей строки
Дан двумерный массив 4 × 6, заполненный целыми числами с клавиатуры. Сформировать одномерный...

Массив: Сформировать массив, каждый элемент которого равен сумме положительных элементов соответствующей строки.
Дан двумерный массив целых чисел, состоящий из n строк и m столбцов, заполненный случайным образом...

Дан массив В из N строк произвольной длины.Сформировать массив В,каждый элемент которого равен последнему символу соответствующей строки.
Дан массив В из N строк произвольной длины.Сформировать массив В,каждый элемент которого равен...

3
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
05.11.2011, 08:24 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
{Дан массив А из N строк. Сформировать массив В, каждый элемент которого
 равен первому латинскому символу соответствующей строки. }
uses crt;
const nmax=20;
      mmax=20;
type mas1=array[1..nmax] of string[mmax]; {данный массив}
     mas2=array[1..nmax] of char; {массив из первых латинских символов}
 
Procedure VvodMas(var a:mas1; var n,m:integer);
var i:integer;
Begin
  write('Введите количество строк (не больше 20) > ');
  readln(n);
  write('Введите длину строки (не больше 20) > ');
  readln(m);
  writeln('Введите ',n,'строк по ' ,m,' символов');
  for i:=1 to n do
     readln (a[i]);
end;
 
Procedure Sort(a:mas1; var b:mas2;n,m:integer);
var i,j:integer;
Begin
{j - первый латинский символ}
  for i:=1 to n do
  begin
    j:=1;
    while (j<=m) and not(a[i][j] in ['A'..'Z','a'..'z']) do
       j:=j+1;
    if (j>m)and not(a[i][m] in ['A'..'Z','a'..'z']) then b[i]:='*'
    else b[i]:=a[i][j];
  end;
end;
 
Procedure Vyvod(b:mas2; n:integer);
var i:integer;
Begin
  for i:=1 to n do
     writeln(b[i]);
end;
 
var a:mas1;
    b:mas2;
   n,m:integer;
Begin
  VvodMas(a,n,m);
  Sort(a,b,n,m);
  Vyvod(b,n);
  readln;
 end.
1
3 / 3 / 1
Регистрация: 08.10.2011
Сообщений: 73
05.11.2011, 12:14  [ТС] 3
Puporev, скажите пожалуйста, вот у вас идет
Цитата Сообщение от Puporev Посмотреть сообщение
VvodMas(var a:mas1; var n,m:integer)
Цитата Сообщение от Puporev Посмотреть сообщение
Sort(a:mas1; var b:mas2;n,m:integer)
Цитата Сообщение от Puporev Посмотреть сообщение
Vyvod(b:mas2; n:integer)
почему у некоторых местах есть var, а в некоторых нет???? причем если не так, как у вас, то программа не работает((((( как понять где его надо писать, а где нет?????
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
05.11.2011, 12:48 4
nadyush-princes, Если параметр выходной, т.е. с ним в процедуре что-то делали, изменяли, то нужно var.
Например в процедуре
Pascal
1
Procedure Sort(a:mas1; var b:mas2;n,m:integer);
мы создаем массив В, которого еще не было.
Наберите в Гугле типа
Входные и выходные параметры процедур в Паскале...
1
05.11.2011, 12:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.11.2011, 12:48
Помогаю со студенческими работами здесь

Сформируйте одномерный массив, каждый элемент которого равен сумме элементов соответствующей строки исходной матрицы.
Есть свободная минутка? попробуйте составить программку: Сформируйте одномерный массив, каждый...

Сформировать массив, каждый элемент которого равен первому положительному элементу соответствующей строки
создать массив 5*6 целых чисел из диапазона вывести его на экран сформировать одномерный массив,...

Двумерный массив. Сформировать одномерный массив каждый элемент которого равен первому нечетному элементу соответствующей строки
Здравствуйте. Выручайте ;) Сформировать одномерный массив каждый элемент которого равен первому...

Сформировать массив, каждый элемент которого равен произведению элементов соответствующей строки матрицы Е
Помогите пожалуйста найти ошибку в коде: Дана матрица целых чисел E размером 6х5. Сформировать...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru