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

Откорректировать код нахождения суммы элементов двух заданных столбцов массива

09.05.2021, 19:21. Показов 2286. Ответов 12

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
var
   n,m,i,j,p,k1,k2,s:integer;
   a:array[1..100,1..100] of integer;
begin
     writeln('Ввод количества столбцов массива  ');
     read(n);
          writeln('Ввод количества строк массива: ');
          read(m);
 i:=1;  {счетчик строк}
 j:=1;  {счетчик столбцов}
 while (i<=n) and (j<=m) do
  begin
   a[i,j]:=i*j;
   inc(j);
   if (j=m+1) then
    begin
     j:=1;
     inc(i);
    end;
  end;
 for i:=1 to n do
 begin
  for j:=1 to m do
   write(a[i,j]:4);
  writeln;
    end;
  begin
    write('Введите номер 1-ой строки от 1 до ',n, ': ');
    readln(k1);
        write('Введите номер 2-ой строки от 1 до ',n, ': ');
    readln(k2);
    s:=0;
    for i:=1 to m do;
      s:=s+(a[k1,j]*a[k2,j]);
      if a[i,j]<>0 then;
      write('Произведение ненулевых элементов',s);
      end;
end.
И если, кто сможет помогите с переводом в кумир... Застрял основательно, даже часть кода скидывать неловко.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.05.2021, 19:21
Ответы с готовыми решениями:

Есть строка, в ней есть "abc" "abc" abc". Найти второе "abc" и заменить на "000"
Есть строка, но мы её не знаем. В ней есть три раза слово &quot;abc&quot;. Надо найти второе &quot;abc&quot; и...

Pascal ABC. Смоделировать игру "Угадай число" (цикл until)
Pascal ABC. смоделировать игру угадай число (цикл until)

Динамическое программирование задача "Калькулятор с восстановлением ответа" (Pascal ABC)
Всем привет. Пишу с проблемой о принятии моей задачи тестирующей программой. Сама задача: Имеется...

Ошибка в коде Pascal ABC, "ожидается оператор", как исправить?
Помогите! Не могу завершить прогу на Pascal ABC (да-да, тот самый). Делаю что-то вроде...

12
Эксперт Pascal/Delphi
6811 / 4568 / 4819
Регистрация: 05.06.2014
Сообщений: 22,438
09.05.2021, 19:35 2
Я же вас предупреждал - проверок нет!
Цитата Сообщение от racerkontra Посмотреть сообщение
с переводом в кумир
Это уж дождитесь Юрия Борисовича )
1
0 / 0 / 0
Регистрация: 11.04.2021
Сообщений: 20
09.05.2021, 19:58  [ТС] 3
Вы правы, проверку будет делать преподаватель... Просто подсчет получается кривой какой-то
0
Эксперт Pascal/Delphi
6811 / 4568 / 4819
Регистрация: 05.06.2014
Сообщений: 22,438
09.05.2021, 20:23 4
racerkontra, давайте так.
Как и где злобный препод ) вас порвал? )
0
0 / 0 / 0
Регистрация: 11.04.2021
Сообщений: 20
10.05.2021, 07:55  [ТС] 5
Хорошо, я честно признаюсь) Живу в городе Новосибирск и учусь в НГПУ(пединститут) заочно, на преподавателя информатики. И как-бы времени нет особо, когда работаешь изучить азы языка паскаля, кумира и.т.д. У нашего преподавателя, который будет проверять практическую, есть некая мания, что мы должны все знать сами. Оно понятно, хочешь учиться заочно, учи сам. И этому преподавателю неважен сам код, важно, чтобы все правильно считало. В нашей группе так получилось, что я слегка приближенный к этому и когда был зачет по программированию, пришлось помогать многим. с 8 утра до 14 с копейкой, я делал и исправлял ошибки ребятам, и запомнил такой момент, что ей именно важен ответ.
На данный момент, преподаватель ничего еще не проверял и будет проверять на сессии. А она будет с 1 июня... Но, чтобы не умереть при защите практики, а мне в любом случае придется помогать другим ребятам, хотелось бы заранее проверить свои работы)
Именно по этому прошу помощи)
0
Почетный модератор
64304 / 47599 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
10.05.2021, 08:41 6
Паскаль
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
var  a:array[1..10,1..10] of integer;  //зачем же 100х100 да еще при вводе с клавиатуры?
     n,m,i,j,p,k1,k2,s:integer;
begin
repeat
writeln('Введите размеры матрицы m,n от 2 до 10');
readln(m,n);
until(m in [2..10])and(n in [2..10]);
writeln('Введите элементы матрицы целые числа');
for i:=1 to m do
for j:=1 to n do
 begin
  write('a[',i,',',j,']=');
  readln(a[i,j]);
 end;
writeln('Введенная матрица');
for i:=1 to n do
 begin
  for j:=1 to m do
  write(a[i,j]:4);
  writeln;
 end;
repeat
writeln('Введите номера двух столбцов 1<=k1,k2<=n k1<>k2');
readln(k1,k2);
until(k1 in [1..n])and(k2 in [1..n])and(k1<>k2);
s:=0;
for i:=1 to m do
s:=s+a[i,k1]+a[i,k2];
write('Сумма элементов столбцов ',k1,' и ',k2,' = ',s);
end.
КУМИР
Код
алг
нач
цел m,n,i,j,k1,k2,s
цел таб a[1:10,1:10]|матрица
вывод "Введите размеры матрицы от 2 до 10", нс
ввод m,n
если m<2 или m>10 или n<2 или m>10 
то вывод "Неверный размер матрицы" все
вывод "Введите элементы матрицы, целые числа", нс
нц для i от 1 до m
нц для j от 1 до n
вывод "a[",i,",",j,"]="
ввод a[i,j]
кц
кц
вывод "Введенная матрица", нс
нц для i от 1 до m
нц для j от 1 до n
вывод a[i,j]," "
кц
вывод нс
кц
вывод "Введите номера двух столбцов 1<=k1,k2<=",n,нс
ввод k1,k2
s:=0;
нц для i от 1 до m
s:=s+a[i,k1]+a[i,k2]
кц
вывод "Сумма элементов в столбцах ",k1," и ",k2," = ",s,нс
кон
Добавлено через 7 минут
Цитата Сообщение от racerkontra Посмотреть сообщение
Просто подсчет получается кривой какой-то
Так нужно считать сумму в двух столбцах, а Вы считаете сумму произведений двух двух строк.
2
0 / 0 / 0
Регистрация: 11.04.2021
Сообщений: 20
10.05.2021, 08:51  [ТС] 7
Puporev, Огромное спасибо!
Притысячно извиняюсь... Задание не то написал. Мое задание Написать и протестировать программу, которая находит произведение ненулевых элементов двух строк массива (номера строк задаются с клавиатуры)
По этому я и пытался посчитать ненулевые элементы из 2 строк.. Все выходные на это потратил, уже запутался..
0
Почетный модератор
64304 / 47599 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
10.05.2021, 08:52 8
Сами исправите?
0
0 / 0 / 0
Регистрация: 11.04.2021
Сообщений: 20
10.05.2021, 08:56  [ТС] 9
Puporev, С кумиром точно не справлюсь, а с кодом на паскале вроде все правильно написал , который в самом верху.(Но сомневаюсь , ибо он не считает все произведения элементов в строках матрицы и как-то странно..
0
Почетный модератор
64304 / 47599 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
10.05.2021, 09:17 10
Лучший ответ Сообщение было отмечено racerkontra как решение

Решение

Паскаль
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
var  a:array[1..10,1..10] of integer;  //зачем же 100х100 да еще при вводе с клавиатуры?
     n,m,i,j,k1,k2,p:integer;
begin
repeat
writeln('Введите размеры матрицы m,n от 2 до 10');
readln(m,n);
until(m in [2..10])and(n in [2..10]);
writeln('Введите элементы матрицы целые числа');
for i:=1 to m do
for j:=1 to n do
 begin
  write('a[',i,',',j,']=');
  readln(a[i,j]);
 end;
writeln('Введенная матрица');
for i:=1 to n do
 begin
  for j:=1 to m do
  write(a[i,j]:4);
  writeln;
 end;
repeat
writeln('Введите номера двух строк 1<=k1,k2<=n k1<>k2');
readln(k1,k2);
until(k1 in [1..n])and(k2 in [1..n])and(k1<>k2);
p:=1;
for i:=1 to m do
for j:=1 to n do
if(i in [k1,k2])and(a[i,j]<>0)then p:=p*a[i,j];
write('Произведение ненулевых элементов строк ',k1,' и ',k2,' = ',p);
end.
КУМИР
Код
алг
нач
цел m,n,i,j,k1,k2,p
цел таб a[1:10,1:10]|матрица
вывод "Введите размеры матрицы от 2 до 10", нс
ввод m,n
если m<2 или m>10 или n<2 или m>10 
то вывод "Неверный размер матрицы" все
вывод "Введите элементы матрицы, целые числа", нс
нц для i от 1 до m
нц для j от 1 до n
вывод "a[",i,",",j,"]="
ввод a[i,j]
кц
кц
вывод "Введенная матрица", нс
нц для i от 1 до m
нц для j от 1 до n
вывод a[i,j]," "
кц
вывод нс
кц
вывод "Введите номера двух строк 1<=k1,k2<=",n,нс
ввод k1,k2
p:=1
нц для i от 1 до m
нц для j от 1 до n
если (i=k1 или i=k2) и a[i,j]<>0 то
p:=p*a[i,j]
все
кц
кц
вывод "Произведение ненулевых элементов в столбцах ",k1," и ",k2," = ",p,нс
кон
1
0 / 0 / 0
Регистрация: 11.04.2021
Сообщений: 20
10.05.2021, 09:20  [ТС] 11
Puporev, Огромнейшее спасибо... Правда, очень благодарен!
0
Эксперт Pascal/Delphi
6811 / 4568 / 4819
Регистрация: 05.06.2014
Сообщений: 22,438
10.05.2021, 10:51 12
Puporev, Юрий Борисович, есть нюанс - при вводе нулевых элементов, произведение = 1.
А, судя по всему, препод - наша!
И обязательно введет все нули...
1
Почетный модератор
64304 / 47599 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
10.05.2021, 11:04 13
Дополним
Паскаль
в раздел var добавить k:integer;
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
.............................
p:=1;
k:=0;
for i:=1 to m do
for j:=1 to n do
if(i in [k1,k2])and(a[i,j]<>0)then
 begin
  k:=1;
  p:=p*a[i,j];
 end;
if k=0 then p:=0;
....................................
КУМИР
добавить цел k
Код
....................................
p:=1
k:=0
нц для i от 1 до m
нц для j от 1 до n
если (i=k1 или i=k2) и a[i,j]<>0 то
k:=1
p:=p*a[i,j]
все
кц
кц
если k=0 то p:=0 все
..................................
2
10.05.2021, 11:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.05.2021, 11:04
Помогаю со студенческими работами здесь

Программа "Ход конём" на Pascal ABC.
Здравствуйте. Обращаюсь за помощью. Прошу оказать помощь в написании программы на Pascal ABC....

"Pascal ABC"
Переписать из Бейсика в Паскаль open &quot;A.txt&quot; for input as 1 open &quot;B.txt&quot; for input as 2 open...

Задание в Pascal ABC
Дана строка. Группы символов, разделённых пробелами (одним или несколькими) и не содержащим...

Создать программы на языке Pascal ABC

Pascal ABC>Задание For4
http://i007.***********/1011/64/b038958f2fac.jpg

Из слова "клоун" путем "вырезок" и "склеек" его букв получить слова "уклон","кулон" и "колун"
Из слова &quot;клоун&quot; путем &quot;вырезок&quot; и &quot;склеек&quot; его букв получить слова &quot;уклон&quot;,&quot;кулон&quot; и...


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

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