• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте, чтобы узнать больше. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Программа алгоритма циклической структуры

  • Автор темы Автор темы Ins1s
  • Дата начала Дата начала

Ins1s

Новые
Регистрация
14 Дек 2009
Сообщения
53
Реакции
0
Баллы
0
Программа алгоритма циклической структуры

Здравствуйте!!, для каждого 0.16<=(меньше или равно)y<=1.6 с шагом дельта y=0.24 при всех 0.1 <=z<=0.5 вычислить s=(y*sqr(x)+z)*arcsinz, причемб если y<0.8, то дельта z =0.1, иначе дельта z=0.05
помогите пожайлуста!!! на ПАскалЕ!!!
 
Непонятно, откуда берется значение переменной x! Допустим, что оно вводится с клавиатуры, тогда алгоритм решения задачи следующий:

1) определяете переменные x,y,z,s вещественного типа
2) в теле программы запрашиваете ввод значения x с клавиатуры.
3) задаете начальное значение переменным y=0.16 и z=0.1
4) заводите цикл "пока" (While) с условием его выполнения пока y не превысит 1.6
5) заводите цикл "пока" с условием его выполнения, пока значение z не превысит 0.5
6) внутри вложенного цикла (п. 5) вычисляете значение переменной s, затем вводите условие на увеличение значения переменной z в зависимости от значения y (соответственно на 0.1 или на 0.05), выводите полученное значение s на экран
7)внутри внешнего цикла (п. 4) увеличиваете значение переменной y
8) после внешнего цикла пишите команду ожидания нажатия клавиши.

А уж программу, думаю, напишите сами, в реализации ничего особо сложного нет.
 
спс конечно... ты профессионал.. ( я и так знаю) но я не понимаю еще так .. можешь написать? да х вводится с клавиатуры!!!-) пожайлуста..я только начинаю писать программы:)
 
Если самостоятельно не начнете думать - никогда не научитесь!

Сходите сюда, скачайте среду, она руссифицированная, с русской справочной системой. А здесь неплохой учебник по Pascal с примерами.
 
если не получится ...я пришлю ошибку посмотрите ?
 
Текст программы сюда разместИте, если что-то в нем не так будет - исправим вместе.
 
program oops;
uses crt;
var x,y,z,s:real;
;k:integer;
begin
clrscr; //для использования нужно подключать библиотеку crt, что в данном случае неоправданно,
//дает увеличение размера файла
write('x=');
readln(x);
y:=0.16;
repeat
z:=0.1;
repeat
s:=(y*sqr(x)+z)*arctan(z);:=
writeln('x='); //перед writeln пишет 42 ошибка (ошибка в выражении что делать)?
k:=k+1;
if k mod 20=0 then
begin
write('Press Enter...');
readln
end;

if y<0.8 then z:=z+0.1 else z:=z+0.05;
until z>0.55;{
y:=y+0.24;
until y>1.84;
readln;
end.
 
Вы вообще откуда этот листинг выдрали? Ошибки и излишний код выделены красным!
 
сам написал... просто в некоторых местах у ошибку выдает и требует поставить : или ; хз сам почему так!
 
ну так что .. что с ней делать?
 
Ошибки исправил, но непонятно, почему вы в формуле использовали функцию арктангенс вместо арксинуса, как дано в задании?
Aрксинус - функция, вычисляемая при помощи формул приведения, то есть arcsin(x)=arctan(x)/sqrt(1-sqr(x)).
Код:
program oops;
var x,y,z,s:real;
begin
  write('x=');
  readln(x);
  y:=0.16;
  repeat
   z:=0.1;
   repeat
    s:=(y*sqr(x)+z)*(arctan(x)/sqrt(1-sqr(x)));
    writeln('s=',s:4:10); 
    if y<0.8 then z:=z+0.1 else z:=z+0.05;
   until z>0.55;
   y:=y+0.24;
  until y>1.84;
  readln;
end.
 
Последнее редактирование:
ой.... чето я перерешал там арксин.. должен быть -) а я которую решил почему программа требовала ; b : перед ключевыми словами? спс-) за исправление.
 
Подождите пока, не копируйте. Сейчас уточняю, как найти арксинус, в стандартном наборе функций языка Pascal этой функции нет.

Все, вариант исправлен и дополнен! :)
 
плин ... спасибо тебе от всей души:) а ты можешь обьяснить мне почему у меня прога требовала ; и : перед ключ. словами?
 
Сравните свой листинг и мой - увидите, что у вас в нескольких местах синтаксические ошибки были! Компилятор о них и говорил.
 
аа=) во оно че ..спс=) тебе большое:) теперь буду знать.. а ту не первый раз у меня такое было:)
 
тут еще с плавающей точкой .. нужно сделать:) это s:2:10????
 
Последнее редактирование:
форматированный текст:
<имя переменной>:<к-во знакомест для вывода целой части>:<к-во разрядов после запятой>

пример записи s:4:6 означает, что под вывод целой части будет отводиться не менее 4-х символов на экране (переполнение возможно) и будет выведено 6 значащих цифр после запятой, число вида _123.245367 (естественно, без подчеркивания впереди).

В вашем представлении s:2:10 будет выведено 10 цифр после запятой. Вообще формат обычно описывается в задании. Но вам вполне можно при выводе значения написать так, как в #17.
 
аа.. ну я смысл понял:) вот только .. я же не знаю какой ответ !:) в каких значениях он будет .. например при х когда ввожу 12 :confused:
а № 17 это как? и где посмотреть?
 
Последнее редактирование:
Не переживайте! Лишние разряды все равно не выведутся, а пустые значения забьются 0 :)

Уже внес коррективы в текст программы, тестируйте!
 
Назад
Сверху