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

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

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

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

Нужно написать программу с табулированием функции на отрезке AB с шагом H

Гульназ.М.

Новые
Регистрация
1 Фев 2012
Сообщения
75
Реакции
0
Баллы
0
Нужно написать программу с табулированием функции на отрезке AB с шагом H

:tehnari_ru_837: если знаете не проходите мимо пожалуйстаа, а я вам очень очень благодрна буду)
Вот задание которое мне срочно нуно сделать: Написать программу с Табулированием функции на отрезке AB с шагом H. SAM_2269.webp
 

Вложения

  • SAM_2267.webp
    SAM_2267.webp
    102 KB · Просмотры: 117
Так которая из двух функций нужна? Или обе?
 
Так то обе..нужны
Да пожалуйста - без проблем:
Код:
VAR
 a,c,x,UL,LL,H:Real;
 N,i:Byte;

Function Y(z:real):Real;
begin
 Y:=Sqrt(z-a)+1/(z+c);
end;

BEGIN
 Write('a= ');
 Readln(a);
 Write('c= ');
 Readln(c);
 Repeat
  Write('Lower limit = ');
  Readln(LL);
  If LL<a then writeln('Error: incorrect value!');
 Until LL>=a;
 Repeat
  Write('Upper limit = ');
  Readln(UL);
  If UL<=LL then writeln('Error: incorrect value!');
 Until UL>LL;
 Repeat
  Write('Step= ');
  Readln(H);
  If (H<=0) or (H>(UL-LL)) then writeln('Error: incorrect value!');
 Until (H>0) and (H<=(UL-LL));
 N:=Round((UL-LL)/H);
 For i:=0 to N do
  begin
   x:=LL+H*i;
   Writeln(x:6:3,Y(x):15:5);
  end;
 Readln
END.
Код:
VAR
 x,UL,LL,H:Real;
 N,i:Byte;

Function Y(z:real):Real;
begin
 Y:=Sqrt(z*Sqrt(z)-z*4);
end;

BEGIN
 Repeat
  Write('Lower limit = ');
  Readln(LL);
  If LL<16 then writeln('Error: lower limit must be >=16!');
 Until LL>=16;
 Repeat
  Write('Upper limit = ');
  Readln(UL);
  If UL<=LL then writeln('Error: incorrect value!');
 Until UL>LL;
 Repeat
  Write('Step= ');
  Readln(H);
  If (H<=0) or (H>(UL-LL)) then writeln('Error: incorrect value!');
 Until (H>0) and (H<=(UL-LL));
 N:=Round((UL-LL)/H);
 For i:=0 to N do
  begin
   x:=LL+H*i;
   Writeln(x:6:3,Y(x):15:5);
  end;
 Readln
END.
 
В первой программе в конце, где END. выводится ошибка двоеточия, все проверила никаких ошибок,но выводится
 
В первой программе в конце, где END. выводится ошибка двоеточия, все проверила никаких ошибок,но выводится
Ну... у меня обе "работают на славу", иначе бы не выложил. А что такое "ошибка двоеточия"? Нельзя ли подробнее?
 
В последней строке выдает ошибку, якобы нет знака двоеточия вот и все.

В последней строке где END. записано,выдает ошибку, что не хватает знака двоеточия.
 
В последней строке где END. записано,выдает ошибку, что не хватает знака двоеточия.
Нет, не понимаю. Сейчас скопипастил прямо с экрана, как есть, запустил - никаких ошибок трансляции. Дайте скриншот - попробуем разобраться.
 
Пользователь Гульназ.М. () пожаловался на это сообщение:


http://www.tehnari.ru/f43/t63517-post668014/#post668014

Это сообщение является частью темы:
http://www.tehnari.ru/f43/t63517/

Причина, указанная отправителем:
Всё всё получилось.


Это сообщение послано всем модераторам раздела, а если отсутствуют модераторы - всем администраторам.


Гульназ, не нужно таким образом говорить об успехах и неудачах, просто оставьте сообщение в теме.
 
Всё,, получилось.. тысячу раз пересмотрела и нашла пропущенное какое то слово. Длинная программка однако.. Но спасибо все равно, надеюсь примут и не придерутся

Ну хорошо, я же не знала. Исправлюсь...
 
Всё,, получилось.. тысячу раз пересмотрела и нашла пропущенное какое то слово.
А Вы что же, перенабиваете? Зачем?
Длинная программка однако..
Ну так, вообще... Мои программы (на том же Паскале) для работы занимают несколько сотен страниц. Это просто между делом, насчет "длинная"...
 
А Вы что же, перенабиваете? Зачем?
Нет нет.
Ну так, вообще... Мои программы (на том же Паскале) для работы занимают несколько сотен страниц. Это просто между делом, насчет "длинная"...
_____________
Ну Вы - то спец.
А я будущий техник-программист всего лишь, наверное..
 
Ну ничего, с этого все и начинается. Все начинали писать с одной-двух-трех строчек.
 
нет а нельзя как нибудь попроще написать, для основ.
без таких слов премудростей, как:
Repeat
('Lower limit = ');
Readln(LL);
If LL<16 then writeln('Error: lower limit must be >=16!');
Until LL>=16;
Repeat
Write('Upper limit = ');
Readln(UL);
If UL<=LL then writeln('Error: incorrect value!');
Until UL>LL;
Repeat
Write('Step= ');

('Error: incorrect value!');
Until (H>0) and (H<=(UL-LL));
N:=Round((UL-LL)/H);
For i:=0 to N do
x:=LL+H*i;


извините за надоедливость, но у меня больше нет выхода....завтра последний день сдачи, если не сдам больше не примут , сама рассматривала никак не получается
 
очень прошу ВАС!... Вам же это проще всего, и кстати больше я вас не побеспокою по пустякам
 
нет а нельзя как нибудь попроще написать, для основ.
Можно. Но часа через 2-3. Сейчас я должен уйти из Сети.
Но только вот что - то вы требуете, чтобы была проверка, то убрать ее. А не боитесь, что препод введет заведомо недопустимое значение аргумента, после чего, указав Вам на ошибку, откажется зачесть работу? Впрочем, как знаете...
 
нет проверка нужна, ну чтобы не сбивалась программа из за каких то цифр..
 
нет проверка нужна, ну чтобы не сбивалась программа из за каких то цифр..
Ну тогда я, извините - пас! То, что Вы хотите выбросить - это она и есть.
Предлагаю такой выход: давайте внимательно, шаг за шагом, разберемся, как она работает.
Итак, берем фрагмент:
Код:
Repeat
 Write('Lower limit = ');
 Readln(LL);
 If LL<16 then writeln('Error: lower limit must be >=16!');
Until LL>=16;
Из вида функции следует, что минимальное значение аргумента есть 16. Если ввести меньшее число, то под корнем образуется отрицательное значение, что недопустимо. Поэтому при вводе нижнего предела (LL) программа проверяет, не меньше ли он 16, и если меньше, то выдается сообщение об ошибке и ввод повторяется. И так продолжается до тех пор, пока не будет введено число, большее или равное 16, т.е. пока условие LL>=16 не станет истинным.
Аналогично проверяется выполнение условия, чтобы верхний предел (UL) был больше нижнего и чтобы шаг (H) был во-первых, положительным, а во-вторых, чтобы он был меньше разности верхнего и нижнего пределов.
Вот, собственно, и всё.
Может быть, Вас английский язык смущает? Так это потому, что я пользуюсь DOS-Паскалем, а там кодировка русских букв отличается от кодировки Windows, и потому я всячески избегаю кириллицы. Но Вы, конечно, можете заменить английские сообщения русскими: "Нижний предел", "Верхний предел", "Шаг", также написать свои сообщения об ошибках, например, вместо 'Error: incorrect value!' записать 'Ошибка: недопустимое значение!' ну и т.п.
 
Назад
Сверху