![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 11.01.2009
Сообщений: 2
|
![]()
Я не понимаю принцип процедур и функция.
Вначале решаю задачу без них - все получается, начинаю делать с ними - сразу запутываюсь.. ![]() очередной "шедевр"... Нужно найти произведение подряд идущих элементов в одномерном массиве, расположенных между двумя нулевыми элементами. вначале решил без процедур- все работало, потом решил сделать с ними- и вот что получилось( конечно не работает): program z1; uses crt; type ar=array[1..5] of integer; var a:ar; n,s,k:byte procedure In_(var a:ar; n:byte); var i,j,k:byte; begin for i:=1 to n do begin writeln('ââåäèòå a[',i,']'); readln(a[i]); end; end; procedure Poisk(var a:ar;n:byte); var i,s,k:byte; begin for i:=n downto 1 do if a[i]=0 then k:=i+1; repeat S:=s*a[k]; k:=k+1; until a[k]=0; end; begin writeln( 'ââåäèòå ðàçìåðíîñòü ìàññèâà'); readln(n); In_(a,n); Poisk(a,n); writeln(S); readkey; end. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 31.10.2008
Сообщений: 500
|
![]() Очень познавательно ... =) а что с принципом процедур и функций ?! =) ) Что тут такого чегов книгах не описывают ... Это некий кусок программы засунутый отдельно для того что б его несколько раз вызывать и тем самым экономить "СТРОКИ" программы... ЧТО не понятного ?? Различие ? - Процедура не возвращает значение а функц. возвращает ... Тоесть к примеру процедура на проверку знака числа... Тут будет лучше использовать функцию и тогда сразу можно присвоить некое значение числу =) тут что не понятнО ? и что именно у вас не работает ???
Skype : UASm1Le.
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 22.12.2008
Сообщений: 104
|
![]()
uses crt;
type ar=array[1..20] of integer; var mas:ar; n:integer; procedure read_array(var a:ar; k:integer); var I:integer; begin for i:=1 to k do begin write(' -> '); readln(a[i]); end; end; procedure print_array(a:ar; k:integer); var i:integer; begin for i:=1 to k do write(a[i],' '); end; function pro(a:ar; k:integer):longint; var i,j:integer; p:longint; begin i:=1; p:=1; repeat if a[i]=0 then begin if i<k then begin i:=i+1; if a[i]=a[i+1] then begin p:=p*a[i]; while (a[i]<>0) and (a[i]=a[i+1]) and (i<k) do begin i:=i+1; p:=p*a[i]; end; end; end; end; i:=i+1; until i>k; pro:=p; end; begin clrscr; write(' KoJIU4ECTBO EJIEMEHTOB -> '); readln(n); writeln; writeln; read_array(mas,n); writeln; writeln; print_array(mas,n); writeln; writeln; write(pro(mas,n)); readln; end.
@(o_0)@
|
![]() |
![]() |
![]() |
#4 |
Новичок
Джуниор
Регистрация: 11.01.2009
Сообщений: 2
|
![]()
народ, спасибо
![]() почитал книжку, вроде сам разобрался ![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
работа со строковыми процедурами и функциями | pooharilo | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 26.12.2008 23:51 |
Помогите решить программу со строковыми процедурами и их функциями | Тищук Евгений | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 08.11.2008 22:59 |
Помогите по работе с процедурами... | ЕвгениуS | Помощь студентам | 1 | 28.05.2008 15:52 |
Помогите разобраться с функциями! | Rembo | Общие вопросы C/C++ | 4 | 08.02.2008 21:24 |