|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
18.05.2010, 19:28 | #1 |
Пользователь
Регистрация: 18.05.2010
Сообщений: 15
|
возврат к началу
Как выполнить вот эти действия - если написал "1", то выход из программы, а если "2", то возврат к началу, и еще, как скопировать текст из паскаля, чтобы не переписывать всё:
var a,b,c,x1,x2,d,y:real; begin write('A='); read(a); write('B='); read(b); write('C='); read(c); d:=b*b-4*a*c; x1:=(-b+sqrt(d))/2*a; x2:=(-b-sqrt(d))/2*a; writeln('X1=',x1); writeln('X2=',x2); writeln('Задача решена? Если да, то напишите "1", иначе "2"); read(y); if y:=1 then end else... а дальше не знаю Заранее спасибо. |
18.05.2010, 21:07 | #2 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
например, так:
Код:
Цитата:
|
|
18.05.2010, 21:25 | #3 |
Форумчанин
Регистрация: 05.04.2010
Сообщений: 410
|
Можно использовать метку, например Label_1.
var a,b,c,x1,x2,d,y:real; Label Label_1; begin Label_1: write('A='); read(a); write('B='); read(b); write('C='); read(c); d:=b*b-4*a*c; x1:=(-b+sqrt(d))/2*a; x2:=(-b-sqrt(d))/2*a; writeln('X1=',x1); writeln('X2=',x2); writeln('Задача решена? Если да, то напишите "1", иначе "2"); read(y); if y <> 2 then goto Label_1; end
ICQ: 593-013-807
|
18.05.2010, 21:27 | #4 |
ТАМБОВСКИЙ ВОЛК.
Участник клуба
Регистрация: 16.03.2010
Сообщений: 1,354
|
Работа с метками это правила плохого тона программирования.
にんじゃ
|
18.05.2010, 21:36 | #5 |
Пользователь
Регистрация: 18.05.2010
Сообщений: 15
|
опачки, спасибо большое, все работает
|
18.05.2010, 21:38 | #6 |
ТАМБОВСКИЙ ВОЛК.
Участник клуба
Регистрация: 16.03.2010
Сообщений: 1,354
|
Всё будет работь только при условии что B>a и больше с.Вбей 1 2 3.И будет ошибка.Если я неошибаюсь.
にんじゃ
|
18.05.2010, 22:37 | #7 |
Пользователь
Регистрация: 18.05.2010
Сообщений: 15
|
Блин, еще одна проблема:
var a,b,c,x1,x2,d:real; y:integer; begin repeat write('A='); read(a); write('B='); read(b); write('C='); read(c); D:=b*b-4*a*c; x1:=(-b+sqrt(d))/2*a; x2:=(-b-sqrt(d))/2*a; writeln('X1=',x1); writeln('X2=',x2); writeln('Задача решена? Если да, то напишите "1", иначе "2"'); read(y); until(y=1); end. Маленько переделал прогу, все возвращается, но почему то ответ неправильный, если подсчитать просто математическим способом, то, например при a=5; b=9; c=-2 должны получиться корни x1=0,2; x2=-2, но в проге получается x1=5; x2=-50, что тут еще может быть не так? Я думаю, что-то с формулой не то, но она должна быть правильная - это формула квадратного уравнения, помогите, кто хорошо знает алгебру |
18.05.2010, 22:38 | #8 |
Пользователь
Регистрация: 18.05.2010
Сообщений: 15
|
|
18.05.2010, 22:39 | #9 |
ТАМБОВСКИЙ ВОЛК.
Участник клуба
Регистрация: 16.03.2010
Сообщений: 1,354
|
потому что корень из отрицательного числа.
にんじゃ
|
18.05.2010, 22:50 | #10 |
Пользователь
Регистрация: 18.05.2010
Сообщений: 15
|
разве? у меня d получилось равным 121, а корень тогда получается 11.
Ну если я правильно написал конечно... корень вроде будет sqrt, ну, вот я и написал sqrt(d)... а разве он мне не выдаст ошибку, если под корнем будет отрицательное число? |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
программа, которая изображает рассвет в лесу,(отразить переход от ночного времени к началу дня) | Серый777 | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 03.05.2010 18:24 |
Сформировать новый список, в котором элементы следуют от конца к началу | Ma666oT | Помощь студентам | 7 | 02.04.2010 00:15 |
подскажите какой компилятор и язык выбрать чтоб по началу не было проблем с библиотеками и учебниками? | TDrive | Общие вопросы C/C++ | 5 | 03.08.2009 15:27 |
Определить какая из точек находится ближе к началу координат(алгоритм ветвления). | Rakfeller | Паскаль, Turbo Pascal, PascalABC.NET | 16 | 25.01.2009 02:01 |
начало второй нарисованной линии должно передвинутся к началу первой. Delphi | maddamo4ka | Помощь студентам | 7 | 08.12.2008 19:19 |