Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Пожалуйста, помогите с задачей в Паскале. (http://www.tehnari.ru/f41/t32761/)

scald 04.02.2010 13:30

За первую спасибо огромное!

Vladimir_S 04.02.2010 14:16

Цитата:

Сообщение от scald (Сообщение 291008)
Ввести размер прямоугольной матрицы и значения ее элементов.
Построить вектор В, где В(i) - максимальное значение в i-ом столбце

Код:

VAR
 A:ARRAY[1..10,1..10] of WORD;
 M:ARRAY[1..10] of WORD;
 Nl,Nc,i,j:INTEGER;
BEGIN
 Write('Enter the number of lines (<=10): ');
 ReadLn(Nl);
 Write('Enter the number of columns(<=10): ');
 ReadLn(Nc);
 WriteLn('Enter the integer positive values of matrix elements:');
 For i:=1 to Nl do
  For j:=1 to Nc do
  begin
    Write('A[',i,',',j,']= ');
    ReadLn(A[i,j]);
  end;
 WriteLn;
 For i:=1 to Nl do
  begin
  For j:=1 to Nc do
    Write(A[i,j]:8);
  WriteLn;
  end;
 WriteLn;
 For j:=1 to Nc do
  begin
  M[j]:=A[1,j];
  For i:=2 to Nl do
    If A[i,j]>M[j] then M[j]:=A[i,j];
  end;
 WriteLn('The array of maximum column values:');
 For j:=1 to Nc do
  WriteLn('M[',j,']= ',M[j]);
 ReadLn;
END.


scald 04.02.2010 17:56

и за вторую спасибо большое. Знать бы конечно алгоритм ещё...ну да ладно. Спасибо Vladimir_S ! Не забуду Вашу отзывчивость и понимание ситуации. Всего Вам доброго!!!

Linka 18.02.2010 19:07

Владимир, а почему во второй программе, вы не сделали так:

Код:

A:ARRAY[1..Nl,1..Nc] of WORD;
с последующим вводом Nl и Nc с клавиатуры ? А сначала поставили ограничения в 10 элементов ?

Vladimir_S 18.02.2010 19:46

Цитата:

Сообщение от Linka (Сообщение 296848)
Владимир, а почему во второй программе, вы не сделали так:

Код:

A:ARRAY[1..Nl,1..Nc] of WORD;
с последующим вводом Nl и Nc с клавиатуры ? А сначала поставили ограничения в 10 элементов ?

А потому что Паскаль такого не допускает. В свое время (много-много лет назад) это для меня было сильным разочарованием - я перешел на Паскаль с языка, в котором подобные конструкции были в порядке вещей. Потом привык.
Что же можно?
1. Определить диапазон массива явно, как сделано в программе. Если длина массива наперед не известна, то нужно взять верхнюю границу "с запасом", благо современные компьютеры это позволяют. Почему 10? А с потолка. Ну то есть не совсем - хотелось, чтобы матрица помещалась на экране в DOS-моде.
2. Задать числа (Nl, Nc) в виде КОНСТАНТ. И только констант. Тогда появится несколько большая свобода, но всё равно, чтобы изменить значения этих чисел, придется лазать в текст программы, а потом перетранслировать.
Вот так. А больше - никак. Ну если, конечно, не лезть в динамические переменные, указатели и т.п. Но это - совсем другая кухня.

Linka 19.02.2010 01:52

Ясно ) Спасибо


Часовой пояс GMT +4, время: 22:40.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.