• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте, чтобы узнать больше. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Нужен допуск на экзамен. Помогите задачу решить.

  • Автор темы Автор темы niktmb
  • Дата начала Дата начала

niktmb

Новые
Регистрация
18 Дек 2010
Сообщения
14
Реакции
0
Баллы
0
Нужен допуск на экзамен. Помогите задачу решить.

A(N,M) Вычислить и запомнить суммы и числа элементов каждой строки матрицы. Результаты отпечатать в виде двух столбцов. N<20 M<15

вот сам текст задачи.

Задание 2. Выполнить программу при n=4, m=4, приняв следующие значения исходной матрицы
A: 1.5 2.0 -1.0 2
3.3 4.4 5.5 6.6
-2 3 4 5
0.0 -2 7 -4
В результате выполнения программы выводится матрица в виде
1.5 2.0
3.3 4.4 5.5 6.6
<пустая строка>
0.0

Правильность выполнения программы легко установить сравнением исходной матрицы A с результатом печати матрицы B. В тестовом наборе данных рассмотрены следующие случаи:
1) в строке есть отрицательный элемент;
2) в строке таковых не наблюдается;
3) первый элемент строки – отрицательный;

Вот это еще дано,но хз нужно или нет это.
 
PROGRAM qwerty;
USES Crt;
CONST
n=15; m=20;
VAR
a:array[1..n,1..m] of integer;
rows:array[1..m]of integer;
cols:array[1..n]of integer;
i,j:integer;
BEGIN
clrscr;
for i:=1 to n do
for j:=1 to m do
begin
write('a[',i,',',j,']=');
readln(a[i,j]);
clrscr;
end;
for i:=1 to n do
for j:=1 to m do
begin
rows:=rows+a[i,j];
cols[j]:=cols[j]+a[i,j];
end;
{rows - суммы по строчкам; cols - по столбцам}
repeat read until keypressed;
END.

вот что в голову пришло,помогите разрулить
 
Боюсь, что с допуском будет некий напряг. Прочитал Ваше первое сообщение раз 10 и, извините, ни хрена не понял. Как из исходной матрицы получается такая странная запись (с пустой строкой)? Каков принцип? Во всяком случае, никакого отношения к приведенной формулировке задачи это IMHO не имеет. Я - пас.
 
я же подписал ниже что это может и не иметь ни какова отношения к задаче, главное прогу написать по тексту задания,я прост не очень шарю.
 
я же подписал ниже что это может и не иметь ни какова отношения к задаче, главное прогу написать по тексту задания,я прост не очень шарю.
Хорошо, допустим. Но тогда разъясните текст самогО задания - он весьма мутен:
A(N,M) Вычислить и запомнить суммы и числа элементов каждой строки матрицы. Результаты отпечатать в виде двух столбцов. N<20 M<15
Что значит "суммы и числа элементов"? Число элементов каждой строки? Но оно для всех строк одинаково и равно числу столбцов (М). Зачем его вычислять? И как? Или суммы элементов строк нужно складывать с количеством элементов? Бред какой-то...
В общем так. Помочь можно будет только после появления внятной и прозрачной формулировки задачи. Отговорки типа "А мне так дали" и "Я в этом не шарю" НЕ ПРИНИМАЮТСЯ.
 
можно я текст задания полностью сюда вам скину а вы мне поможете? я прост серьёзно не магу там разобраться там вообще.
 
Удалено
сюда не умещается залил вот сюда,там вордовский файлик
 
Последнее редактирование модератором:
удалено сюда не умещается залил вот сюда,там вордовский файлик
Впредь не надо так делать. Вам следовало свернуть файл в ZIP-архив и дальше выложить в виде вложения.
Ну ладно.
Какое из заданий нужно? Второе? Или все?
Между прочим, во втором явно пропущено слово, скорее всего "положительных". Иначе - бессмыслица.
 
Последнее редактирование модератором:
хорошо.
да,только второе,первое я уже сам сдал. Из таблице как вы уже поняли (я думаю) только 2 вариант. вполне возможно что пропущено.
 
хорошо.
да,только второе,первое я уже сам сдал. Из таблице как вы уже поняли (я думаю) только 2 вариант. вполне возможно что пропущено.
Без проблем. Сейчас нарисую.
 
заранее огромное спасиба. только если можно текст программы полностью напишите,а то ведь не разберусь.
 
Пожалуйста:
Код:
VAR
 A:Array[1..20,1..15] of Real;
 Sum:Real;
 N,M,NMpos:Byte;
 i,j:Integer;
BEGIN
 Write('Number of rows (<20)= ');
 ReadLn(N);
 Write('Number of columns (<15)= ');
 ReadLn(M);
 For i:=1 to N do
  For j:=1 to M do
   begin
    Write('A[',i:2,',',j:2,']= ');
    ReadLn(A[i,j]);
   end;
 WriteLn('Initial matrix:');
 For i:=1 to N do
  begin
   For j:=1 to M do
    Write(A[i,j]:6:1);
   WriteLn;
  end;
 WriteLn;
 WriteLn('Result of calculation:');
 For i:=1 to N do
  begin
   Sum:=0;
   NMpos:=0;
   For j:=1 to M do
    begin
     Sum:=Sum+A[i,j];
     If A[i,j]>0 then Inc(NMpos);
    end;
   WriteLn(Sum:7:1,NMpos:4);
  end;
 WriteLn;
 ReadLn;
END.
 
огромное спасибо,все работает идеально.:tehnari_ru_288:
 
только еще один вопрос возник,можно ли сделать так что бы элементы матрицы в столбцах и строках прога заполняла рандомом? если можно то что надо изменить?
 
только еще один вопрос возник,можно ли сделать так что бы элементы матрицы в столбцах и строках прога заполняла рандомом?
Легко. Только встречный вопрос - нельзя ли ограничиться целочисленным форматом (Integer) элементов матрицы, т.е. обязательно ли Real? Если можно, то было бы существенно проще и удобнее.
 
Я думаю что можно только целые(интежер) вряд ли на это будут смотреть.
 
Получите:
Код:
VAR
 A:Array[1..20,1..15] of Integer;
 Sum,i,j:Integer;
 N,M,NMpos:Byte;
BEGIN
 Write('Number of rows (<20)= ');
 ReadLn(N);
 Write('Number of columns (<15)= ');
 ReadLn(M);
 Randomize;
 For i:=1 to N do
  For j:=1 to M do
    A[i,j]:=Random(100)-50;
 WriteLn('Initial matrix:');
 For i:=1 to N do
  begin
   For j:=1 to M do
    Write(A[i,j]:5);
   WriteLn;
  end;
 WriteLn('Press "Enter" to continue');
 ReadLn;
 WriteLn('Result of calculation:');
 For i:=1 to N do
  begin
   Sum:=0;
   NMpos:=0;
   For j:=1 to M do
    begin
     Sum:=Sum+A[i,j];
     If A[i,j]>0 then Inc(NMpos);
    end;
   WriteLn(Sum:7,NMpos:4);
  end;
 WriteLn;
 ReadLn;
END.
 
После ввода числа столбцов и строк выдаёт ошибку Error 215: Arithmetic overflow.
 
Но я так понял что если изменить random(100)-50 на (100)+50 или (100)+0 то все работает
 
Назад
Сверху