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

> Прочтите прежде чем задавать вопрос!

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

 
 Ответить  Открыть новую тему 
> На цикл
FantomasiK
сообщение 18.12.2005 13:50
Сообщение #1


Новичок
*

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

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


Помогите!!! Вот написал задачу, а оно почему-то плохо работает. Когда я ввожу N мне сразу ответ не выдает, а оно опять просит ввести N, пока не попадаешь на определённые цифры. Например: 1, 8, 56...
вот условие задачи
№1 надо вычислить значение функции y=sin(n*x)-cos(n/x), если N заданно, а X изменяется от Xo до Xк с шагом N. Вывести на печать значение функции, удовлетворяющие условию 0<y<0.5
А вот, что у меня есть
Program zadanie_1;
Uses crt;
Var n,x: integer; y:real;
Begin
ClrScr;
repeat
Write('Vvedite n=');
Readln(n);
for x:=1 to n do y:=sin(n*x)-cos(n/x);
until (y>0) and (y<0.5);
Write(' y=',y:4:2);
Readln;
End.


Сообщение отредактировано: volvo - 18.12.2005 14:18
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Анна
сообщение 18.12.2005 14:14
Сообщение #2


Бывалая
***

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

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


Потому что у тебя условие: Вывести на печать значение функции, удовлетворяющие условию 0<y<0.5
А вот оно у тебя в задаче:
repeat
...
until (y>0) and (y<0.5);
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 18.12.2005 14:21
Сообщение #3


Гость






FantomasiK, ты просто зацикливаешь ввод данных тоже. Вот так сделай:
    Write('Vvedite n='); Readln(n);
for x:=1 to n do begin
y:=sin(n*x)-cos(n/x);
if (y>0) and (y<0.5) then WriteLn(' y=',y:4:2);
end;

и убери совсем Repeat ... Until.
 К началу страницы 
+ Ответить 
Анна
сообщение 18.12.2005 14:28
Сообщение #4


Бывалая
***

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

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


а ещё лучше
                         Program zadanie_1;

Uses crt;

Var n,x: integer; y:real;

Begin

ClrScr;



Write('Vvedite n='); Readln(n);
for x:=1 to n do
y:=sin(n*x)-cos(n/x);
if (y>0) and (y<0.5) then WriteLn(' y=',y:4:2) else writeln ('Не удовлетворяет условию...');


End.






Для наглядности ... blum.gif blink.gif

Сообщение отредактировано: Анна - 18.12.2005 20:43
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 18.12.2005 14:38
Сообщение #5


Гость






Цитата
а ещё лучше

А вот за следующее подобное решение я буду тебя наказывать !!! mad.gif Теперьотладь эту программу, и объясни, в чем была твоя ошибка... Для наглядности.
 К началу страницы 
+ Ответить 
Анна
сообщение 18.12.2005 20:44
Сообщение #6


Бывалая
***

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

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


вот ...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



- Текстовая версия 18.07.2025 9:49
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"