IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

 
Closed Topic Открыть новую тему 
> Процедуры
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской
Реальное имя: Артур

Репутация: -  0  +


Люди помогите!! Где можно найти как решать задачи через процедуры!!! не понимаю!! wacko.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Найти можно на форуме, заходи в задачи ... с помощью процедур решены сотни задач на любой вкус и цвет ...


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской
Реальное имя: Артур

Репутация: -  0  +


Вообще я хочу понять эту тему! когда пойму и буду решать задачу свою! rolleyes.gif
не знаешь ни каких ссылок на эту тему!!!

Сообщение отредактировано: Sir-j -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 48
Пол: Мужской
Реальное имя: Fang

Репутация: -  2  +


Чтобы понять нужно книжку какую нибудь почитать.
Вот отрывок из книги Фаронова:

Цитата
Процедурой в Турбо Паскале называется особым образом оформленный фрагмент программы, имеющий собственное имя. Упоминание этого имени в тексте программы приводит к активизации процедуры и называется ее вызовом. Сразу после активизации процедуры начинают выполняться входящие в нее операторы, после выполнения последнего из них управление возвращается обратно в основную программу и выполняются операторы, стоящие непосредственно за оператором вызова процедуры
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 27
Пол: Мужской
Реальное имя: Александр

Репутация: -  0  +


http://books.dore.ru/bs/f1bid2138.html - Здесь очень хорошая книга. (М. Сухарев - "Turbo Pascal 7.0".
Я по ней учил (и сейчас учу) Pascal. Процедуры понял сразу. Так, что советую.
Напишу один пример, по которому я понял процедуры сразу.
Программа на вычисление корней квадратного уравнения:

Program Roots1;
Uses
Crt;
Var
a, b, c: Real; {Переменные для хранения коэффициентов}
D, x1, x2: Real; {Переменные для дискриминанта и корней ур-ния}
Procedure Writeroots; {Заголовок процедуры, имя процедуры - Writeroots}
begin
D := b*b-4*a*c;
if D < 0 then writeln('Уравнение корней не имеет')
else if D = 0 then
begin
x1 := -b/(2*a);
Writeln('Уравнение имеет один корень: ');
WriteLn('x = ', x1);
end
else
begin
x1 := (-b + sqrt(D))/(2*a);
x2 := (-b - sqrt(D))/(2*a);
Writeln(Уравнение имеет два корня: ');
WriteLn('x1 = ', x1);
WriteLn('x2 = ', x2);
end;
end;
Begin
ClrScr;
a := 2;
b := 12;
c := 11;
Writeroots;
a := 1;
b := 5;
c := 200;
Writeroots;
ReadKey;
End.



Сообщение отредактировано: Orlangur -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Цитата
я понял процедуры сразу

Ты конечно не обижайся, но код должен обладать массовостью, а не какой-то одной конкретно решеной задачей. Процедуры и функции вообще объединяются в модули, чтоб потом их можно было пользовать в различных программах. Поэтому мой тебе совет, заранее думай на сколько эта процедура применима для решения других задач. А вообще я советую переписать данную процедуру. Ну например только параметры
procedure writeRoots (a, b, c: real; Var x1, x2: real);
тогда хотяб вместо скверного одново вывода можешь получить хотяб значение корней. Можно добавить какой-нибудь flag типа boolean который будет сообщать имеет ли уравнение корни или нет.

А если ты парень хочешь узнать что есть процедура то гляди, щас я тебе объясню. Это фрагмент программы, можно сказать мини программка которая выполняет определенное действие. Например тоже считание корней квадратного уравнения. Соответственно есть понятие входных и выходных параметров. Входными параметрами называется те параметры с помощью которых ты можешь обработать и получить нужную тебе информацию. В данном случае эти параметры a, b, c. Выходные параметры, это те которые получила данная процедура, и готова передать соответствующие значения в основную программу. В данном случае это x1, x2. перел=д выходными параметрами ставится Var.

Используя все вышесказанное могу добавить следующее. Тело программы можно изменить так, отчего это будет наглядней

writeLn ('введите коэф. квадратного уравнения ->');
readLn (a1,b1,c1);
writeRoots (a1, b1, c1, x1, x2); {обращаюсь к данной процедуре, и получаю значения x1 и x2}
{можем еще раз вывести корни этого же уравнения уравнения, можем так же работать с этими корнями}
write (x1:5:2,' ',x2:5:2);
{а можно и так обратиться к этой процедуре}
writeRoots (5, -12, 7, x3, x4); {дело каждого}
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Цитата(неважно @ 21.11.2005 23:10)
Ты конечно не обижайся, но код должен обладать массовостью, а не какой-то одной конкретно решеной задачей.
blink.gif Это такая новая форма бреда? Какой массовостью должен обладать код? Ты сам-то понял, что сказал?

Цитата(неважно @ 21.11.2005 23:10)
Процедуры и функции вообще объединяются в модули, чтоб потом их можно было пользовать в различных программах. Поэтому мой тебе совет, заранее думай на сколько эта процедура применима для решения других задач.
Вот !!! Вот, что я так долго и упорно искал в интернете, и никак не мог найти !!! То-то я смотрю, почти все стандартные процедуры и функции недоделанные какие-то... SetColor() например... Я хотел ее как-то применить для решения другой задачи (ну, музыку какую-нибудь пропиликать на спикере) - ничего не вышло... blink.gif Может не так пробовал?

Цитата(неважно @ 21.11.2005 23:10)
А вообще я советую переписать данную процедуру. Ну например только параметры
procedure  writeRoots (a, b, c: real; Var x1, x2: real);
тогда хотяб вместо скверного одново вывода можешь получить хотяб значение корней. Можно добавить какой-нибудь flag типа boolean который будет сообщать имеет ли уравнение корни или нет.

Угу... Очень эффективное и вообще говоря прямо само собой разумеющееся решение... Особенно про флаг мне понравилось... Исключительно только этим теперь и буду пользоваться... Плевать на то, что корней может быть два, может быть один корень, может вообще не быть... Надо будет - еще один флаг добавим. А чего? Функций же в языке нету, или уважаемый неважно просто не дочитал букварь до той страницы, где про них рассказывается...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Знаю, чепуху нес... Ночь темная была... Глазки красненькие. И чего ты на меня так накинулся???. Ты уважаемы volvo меня извени, но уж так получилось. А к Вашему сведению, даже знаю что такое рекурсия... Представляете... Даже динамические массивы... Угу.
Честно скажу на паскале давно не программировал, так занесла к Вам поисковая система, вот и решил тряхнуть стариной. Посмотрел, а тут вроде чего-то знакомое пишут... Ну и понеслась, ты уж volvo прости грешников...
Цитата
Особенно про флаг мне понравилось...

и ничего плохого в этом нет. Хорошая штука, иногда помогает... Способ, но суть то сводилась к пояснению процедур...
Вот... И еще раз прошу огромное извинение, за то что задел Ваше самолюбие.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Цитата
Знаю, чепуху нес... Ночь темная была... Глазки красненькие.

Думать начинаем после того, как делаем... Ясно...

Цитата
А к Вашему сведению, даже знаю что такое рекурсия... Представляете... Даже динамические массивы... Угу.
Нам абсолютно все равно что ты знаешь, мы только знаем, что ты умеешь разводить бессмысленные монологи и беспочвенно критиковать!

Закрыто!


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Closed Topic Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 23.12.2024 20:02
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name