Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на языке Pascal


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Pascal

Выпуск № 56
от 18.05.2005, 22:50

Администратор:Калашников О.А.
В номере:Вопросов: 1, Ответов: 2


Вопрос № 20826: люди помогите проверить задачи 1) найти произведение минимальных элементов каждой строки матрицы. 2) напечатать максимальное значение модуля разности между произвольной парой соседних элементов в трех последовательностях. 3)найти произведение максима...

Вопрос № 20826
люди помогите проверить задачи 1) найти произведение минимальных элементов каждой строки матрицы. 2) напечатать максимальное значение модуля разности между произвольной парой соседних элементов в трех последовательностях. 3)найти произведение максимальных элементов каждой строки для трех матриц. посмотрите кому не сложно нужно найти ошибки.

Приложение:

Отправлен: 13.05.2005, 22:43
Вопрос задал: dinar (статус: Посетитель)
Всего ответов отправлено: 2

Отвечает: dfdfdf
Здравствуйте, dinar!
{111111задача}
var a : array [1..3,1..3] of real;
i,j:byte;
min,r:real;
begin
for i:=1 to 3 do
for j:=1 to 3 do
readln(a[j,i]);
for i:=1 to 3 do
begin
for j:=1 to 3 do
write(a[j,i],' ');
writeln;
end;
r:=1;
for i:=1 to 3 do
begin
min:=a[1,i];
for j:=2 to 3 do
if a[j,i]<min then min:=a[j,i];
r:=r*min;
end;
writeln('r=',r:11:2);
readln;
end.
Может я тут случайно строки со столбцами поменял, но суть остается той же, надо просто переменные i,j поменять в строке write(a[j,i],' ');
=========================================
В условия второй задачи я не понял, но начинаться она должна была бы:
{22222задача}
type dinar = array[1..3] of real;
var a,b,c:dinar; s: real;
procedure wod (f:dinar);
var i:byte;
begin
for i:=1 to 3 do
readln(f[i]);
end;
begin
wod(a);
wod(b);
wod(c);
Кроме того в паскале нельзя делать имена переменных с пробелом (поэтому max a надо обозвать как нибудь подругому, например max_a).
Кроме того кусок:
for i:=1 to 3 do begin
r:=abs(b[i]-b[i+1]);
if r>max b then max b:=r;
max c:abs(c[1]-c[2]);
Повторяется несколько раз, его надо запихнуть в функцию. Наверно.
=========================================================
А это вообще 1 прога, только оформленная в виде функции и все. А ну да и еще надо ввести массив матриц.
{333333задача}
type dinar=array[1..3,1..3] of real;
var z:array [1..3] of dinar;
i,j:byte;
function firstprog (a:dinar):real;
var min,r:real;
i,j:byte;
begin
for i:=1 to 3 do
begin
for j:=1 to 3 do
write(a[j,i],' ');
writeln;
end;
r:=1;
for i:=1 to 3 do
begin
min:=a[1,i];
for j:=2 to 3 do
if a[j,i]<min then min:=a[j,i];
r:=r*min;
end;
writeln('r=',r:11:2);
firstprog:=r;
end;
begin
{тут бы надо добавить ввод трех матриц}
for i:=1 to 3 do
firstprog(z[i]);
readln;
end.
Ответ отправил: dfdfdf (статус: 10-ый класс)
Отправлен: 14.05.2005, 10:10
Оценка за ответ: 5

Отвечает: Ayl
Здравствуйте, dinar!
Задача 1.
1. После отработки цикла по заполнению матрицы значения переменных i и j неопределены. В результате обращение min := a [1, j] некорректно. Далее. Ты заводишь цикл по j. И обращаешься к элементу с индексом [i, j]. Но чему равен i? Неизвестно. Некорректно.
Далее. Допустим, что ты вычислил min. И потом в цикле по i выполняешь команду r := r * min. При условии того, что r равно 1 в начале итераций, твой цикл выполняет возведение в 3-ю степень значения переменной min. А это немного отличается от задания, ИМХО.
Задача 2.
1. Переменные max_a, max_b, max_c неопределены. К тому же вызывает вопрос операция max a:abs(a[1]-a[2]). Надеюсь, что это проблемы формы и написано все-таки max_a := abs (a [1] - a [2]).
2. Ты не имеешь права запускать цикл от 1 до 3. Во-первых, при значении индекса равного 3. ты будешь пытаться найти разность между элементами с индексами 3 и 4, а элемента с индексом 4 в твоем массиве нет. Получи ошибку времени выполнения. К тому же, зачем повторно вычислять разность между первым и вторым элементами? Она уже посчитана при расчете max_a.
4. Ты начинаешь цикл: for i := 1 to 3 begin, но не закрываешь его с помощью end.
Задача 3.
1. Функция maxx. Опять идет обращение max := d [1, j] при условии, что j еще не определена.
2. Интересная конструкция: if d[1,j]>max then max:=d[i,j]. А что такое i? И какое отношение к i имеет 1?
3. При вычислении произведения таже самая ошибка, что и в задаче 1.
4. Не производится печать значения r.
В Приложении см. решения

Приложение:

Ответ отправил: Ayl (статус: Профессор)
Отправлен: 16.05.2005, 13:23


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Яндекс


http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.pasplus
Отписаться

В избранное