![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
garry_m |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 37 Пол: Мужской Репутация: ![]() ![]() ![]() |
Помогите pls вставить цикл следующего типа в программу:
Цикл:
Программа: uses crt; |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цикл в программу вставляется обычно не просто так, а для чего-то... Вот если ты объяснишь, для чего тебе понадобился такой цикл, мы подскажем, как его добавить...
|
garry_m |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 37 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ну этот же цикл для проверки на правильность ввода 3 переменных. Собственно его и требуется вставить...
|
GoodWind |
![]()
Сообщение
#4
|
![]() Автооответчик ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 188 Пол: Мужской Реальное имя: Александр Репутация: ![]() ![]() ![]() |
Код uses crt; var x,y,z:real; c:real; ans:char; s:string; begin clrscr; repeat clrscr; writeln('Raschet znachenija functii.'); writeln(''); repeat {$I-} write('Vvedite X -> '); readln(s); {$I+} ok:=(ioresult=0); val(s,x,err); ok:=ok and (err=0); if not ok then writeln('Error!'); until ok; repeat {$I-} write('Vvedite Y -> '); readln(s); {$I+} ok:=(ioresult=0); val(y,k,err); ok:=ok and (err=0); if not ok then writeln('Error!'); until ok; repeat {$I-} write('Vvedite Z -> '); readln(s); {$I+} ok:=(ioresult=0); val(s,z,err); ok:=ok and (err=0); if not ok then writeln('Error!'); until ok; writeln(''); writeln('Raschitaem znachenije functii.'); C:=ln(sqr(2*x+5*y)*(22*x+401*y)/(5*sqr(x)+8*y+9*z)); writeln(''); write('Znachenije functii ravno: ',C:8:4); readln; writeln(''); writeln('Do you want to repeat?'); ans:=readkey; until UpCase(ans) = 'N'; end. вроде этого - на компиляторе не проверял! Сообщение отредактировано: GoodWind - 30.12.2005 22:15 -------------------- Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
|
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
Чтобы не раздувать программу - оформляй ввод переменной как отдельную функцию и вызывай ее 3 раза (для каждой переменной)... Что-то такого типа:
Function GetVar(minRange, maxRange: Real): Real; |
garry_m |
![]()
Сообщение
#6
|
Новичок ![]() Группа: Пользователи Сообщений: 37 Пол: Мужской Репутация: ![]() ![]() ![]() |
Помогите plz применить это к моей программе, чтобы я смог разобраться во всем...
Я вчера парился в редакторе - не выходит! |
GoodWind |
![]()
Сообщение
#7
|
![]() Автооответчик ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 188 Пол: Мужской Реальное имя: Александр Репутация: ![]() ![]() ![]() |
garry_m, а пост №4 ты смотрел ?
![]() -------------------- Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
|
garry_m |
![]()
Сообщение
#8
|
Новичок ![]() Группа: Пользователи Сообщений: 37 Пол: Мужской Репутация: ![]() ![]() ![]() |
GoodWind, спасибо большое!
Но я хочу научиться применять цикл, который написал volvo. Т. к. а если мы скажем будем вводить 25 значений переменных, то мы будем 25 раз писать процедуру для проверки на правильность ввода? |
GoodWind |
![]()
Сообщение
#9
|
![]() Автооответчик ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 188 Пол: Мужской Реальное имя: Александр Репутация: ![]() ![]() ![]() |
тогда обясню - свой цикл (модифицированный конечно) оформляешь в функцию, которую применяешь вместо readln.
Код function GetRealA(min,max:real;mess:string;):real; var s:string; err:integer; t:real; ok:boolean; begin ok:=false; repeat write(mess); readln(s); val(s,t,err); ok:=(err<>0) and (t>=min) and (t<=max); if not ok then writeln('Error!'); until ok; GetRealA:=t; end; теперь можешь использовать эту фуенкцию в своей программе: Код uses crt; var x,y,z:real; c:real; ans:char; begin clrscr; repeat clrscr; writeln('Raschet znachenija functii.'); writeln(''); x:=getRealA({мин значение},{макс значение},'Введите Х: '); y:=getRealA({мин значение},{макс значение},'Введите Y: '); x:=getRealA({мин значение},{макс значение},'Введите Z: '); writeln(''); writeln('Raschitaem znachenije functii.'); C:=ln(sqr(2*x+5*y)*(22*x+401*y)/(5*sqr(x)+8*y+9*z)); writeln(''); write('Znachenije functii ravno: ',C:8:4); readln; writeln(''); writeln('Do you want to repeat?'); ans:=readkey; until UpCase(ans) = 'N'; end. примерно так... ![]() -------------------- Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
|
![]() ![]() |
![]() |
Текстовая версия | 21.07.2025 10:25 |