1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
процедуры с параметрами, дописать в прогу процедуры с параметрами
Есть программа, нужно прописать 3 процедуры, каждая с 3 параметрами. Первая процедура - изменение размерности матрицы, т.е. спрашивать пользователя сколько строк и сколько столбцов, изменение имени первой и второй матрицы; вторая - пользователь выбирает что делать с матрицей( находить среднее арифм, сумму или произведение элементов); третья - формула, по которой считается результатная матрица. Вот сама задача: Дана матрица А(6,6). Определить среднее арифметическое матрицы А - SRA. Создать новую матрицу В(6,6), где В(i,j)= A(i,j)*0,1*SRA.Вывести исходную и результатную матрицы на экран. 4progadfbdff.PAS ( 2.31 килобайт )
Кол-во скачиваний: 567
Программа моя, писала сама, но как делать процедуры я не понимаю!(
Хорошо, поможем обязательно. Только нужно кое-что уточнить. Например - параметров у каждой процедуры должно быть ровно три? Это требование выглядит несколько странным.. Вообще, в данном случае разбиение на процедуры кажется мне надуманным - но это еще ладно, раз требуют, можно три сделать. Но насчет параметров - в высшей степени странно. Если уж с тебя требуют определенное число параметров, то пусть скажут, какие именно. Пожалуйста, уточни этот вопрос.
Так, из общих соображений целесообразности, я могу, например, предложить выделить в процедуру, например, печать заголовка. Это будет вполне осмысленно. Текст (шапку) при этом можно держать в отдельном файле. Если тебе это подходит, могу помочь.
Дальше.. Выбор дествия. которое нужно произвести с матрицей, можно оформить либо в виде меню, либо в виде парсера строки. Первое (меню) намного легче второго (парсера). Меню тоже можно выделить в отдельную (и даже не одну) процедуру.
Так что выбирай. Проясни детали, которые я спрашивал (например, у препа). Скажи, что именно ты хочешь сделать. А я постараюсь помочь.
--------------------
я - ветер, я северный холодный ветер я час расставанья, я год возвращенья домой
Хорошо, поможем обязательно. Только нужно кое-что уточнить. Например - параметров у каждой процедуры должно быть ровно три? Это требование выглядит несколько странным.. Вообще, в данном случае разбиение на процедуры кажется мне надуманным - но это еще ладно, раз требуют, можно три сделать. Но насчет параметров - в высшей степени странно. Если уж с тебя требуют определенное число параметров, то пусть скажут, какие именно. Пожалуйста, уточни этот вопрос.
Так, из общих соображений целесообразности, я могу, например, предложить выделить в процедуру, например, печать заголовка. Это будет вполне осмысленно. Текст (шапку) при этом можно держать в отдельном файле. Если тебе это подходит, могу помочь.
Дальше.. Выбор дествия. которое нужно произвести с матрицей, можно оформить либо в виде меню, либо в виде парсера строки. Первое (меню) намного легче второго (парсера). Меню тоже можно выделить в отдельную (и даже не одну) процедуру.
Так что выбирай. Проясни детали, которые я спрашивал (например, у препа). Скажи, что именно ты хочешь сделать. А я постараюсь помочь.
Параметров не обязательно, но желательно три. Не, заголовок( как я поняла ты имеешь ввиду титульный лист) выделять в процедуру нельзя... надо запрашивать пользователя о размерности матрицы, через процедуры спросить в форме меню под 1,2,3 что делать с матрицей, далее через процедуру высчитать создать формулу на основе данной, спросить пользователя так же через меню как расположить исходный и результатный массив: рядом, друг под другом или по диагонали(тоже через процедуры сделать).Вот что мне препод сказал...
Отлично. Желательность постараемся учесть по мере возможности (но не будем горевать, если ее не будет)))
Цитата(Анечка @ 24.03.2009 20:29)
заголовок( как я поняла ты имеешь ввиду титульный лист) выделять в процедуру нельзя...
Терпеть не могу слова "нельзя". Вот, смотри, я сделал процедуру для выводв строки, которая может центрировать строку, нормировать на левый/правый край, а также выводить в указанной позиции. Ты увидишь сама, насколько это удобнее - никаких явных указаний, где печатать, вычислений позиции.. Я, конечно, понимаю, что тебе может показаться жалко своей работы - но это именно то, что должен делать компьютер, ибо он делает это гораздо лучше людей .
program zadanie_4; uses crt; type tMatrix=array[1..6,1..6] of real;
procedure OutLn(s: string; Pos,Col: integer); begin TextColor(Col); case Pos of -2: GoToXY(1,WhereY); 0: GoToXY((Lo(WindMin)+Lo(WindMax)-Length(s))div 2,WhereY); -1: GoToXY(Lo(WindMin)+Lo(WindMax)-Length(s)+2,WhereY); else GoToXY(Pos,WhereY) end; WriteLn(s) end;
begin clrscr; GoToXY(1,6); OutLn('Вашему вниманию представленна программа',-1,LightGray); OutLn('по нахождению среднего арифметического',0,LightGray); OutLn('в квадратной матрице.',0,LightGray); WriteLn; OutLn('ЗАДАЧА ПРОГРАММЫ:',0,Red); OutLn('ПОСТРОИТЬ КВАДРАТНУЮ МАТРИЦУ "А"',0,White); OutLn('НАЙТИ СРЕДНЕЕ АРИФМЕТИЧЕСКОЕ В МАТРИЦЕ "А"',0,White); OutLn('ПОСТРОИТЬ МАТРИЦУ "Б"*0.1*SRA',0,Red); OutLn('ВЫВЕСТИ ИСХОДНУЮ МАТРИЦУ И ПОЛУЧЕННУЮ РЯДОМ',0,Red); WriteLn; OutLn('Программу составила',42,Green); OutLn('студентка МГУ ПС группы ЭИЭ - 112',42,Green); OutLn('ИВАНОВА АННА',42,Green); WriteLn; WriteLn; OutLn('Москва 1.12.2009',0,Yellow); WriteLn; OutLn('Нажмите любую клавишу для продолжения!',0,LightGray); ch:=readkey;
L1: begin clrscr; writeln('ВВЕДИТЕ ЭЛЕМЕНТЫ МАТРИЦЫ!!!'); writeln; SRA:=0; for i:=1 to 6 do for j:=1 to 6 do begin repeat write('a[',i,',',j,']>'); readln(byk); val(byk,a[i,j],z); textcolor(12); If z<>0 then writeln('Неверно задан элемент матрицы! Повторите ввод элемента'); textcolor(white); Until z=0;
SRA:=SRA+a[i,j]; end; SRA:=SRA/36; for i:=1 to 6 do for j:=1 to 6 do b[i,j]:=a[i,j]*0.1*SRA; clrscr; writeln('Среднее арифметическое =',sra:10:2); writeln; writeln(' "МАТРИЦА А"'); writeln; for i:=1 to 6 do begin for j:=1 to 6 do write(a[i,j]:10 :1); writeln; { writeln;} end; writeln; writeln(' "МАТРИЦА Б"'); writeln; for i:=1 to 6 do
begin for j:=1 to 6 do write(b[i,j]:10 :1); writeln; end;
gotoxy(20,24); writeln('Хотите ли продолжить? Y-да, N-нет'); l2: case readkey of #89: goto l1; #121: goto l1; #78: exit; #110:exit; end; goto l2; end; end.
Остальную часть программы я пока оставил без изменения. Это было непросто - скрепя зубы я оставил твои метки и GoTo.. Если хочешь, чтоб я и дальше помогал тебе - избавься от них (я могу помочь ).
Цитата(Анечка @ 24.03.2009 20:29)
надо запрашивать пользователя о размерности матрицы, через процедуры спросить
У меня сложилось впечатление, что ты как-то извращенно понимаешь процедуры.. Они у тебя почему-то всегд для ввода чего-нибудь. Это в корне неверное понимание. Процедура (или функция) используется для обособленной (и, как правило, неоднократно использующейся) части кода, выполняющей любую задачу - совсем не только ввод. Даже, как правило не ввод ).
Цитата(Анечка @ 24.03.2009 20:29)
в форме меню под 1,2,3
Опять магическое число 3!.. Боюсь, я буду просыпаться по ночам и кричать: "Три параметра!!" (почти по Пушкину )
Цитата(Анечка @ 24.03.2009 20:29)
далее через процедуру высчитать создать формулу на основе данной,
А это я просто не понял)). "Через процедуру высчитать.. создать формулу на основе данной..." ?? Что это значит?? Кто понял, объясните, плз..
Цитата(Анечка @ 24.03.2009 20:29)
Вот что мне препод сказал...
Ох.. Одно из двух: либо вы с ним плохо поняли друг друга, либо - мне жаль МГУ, с такими преподами у него нет шансов..
Сообщение отредактировано: Lapp -
--------------------
я - ветер, я северный холодный ветер я час расставанья, я год возвращенья домой