![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Марина Игоревна |
![]()
Сообщение
#1
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 177 Регистрация: 19.2.2009 Город: Славгород Учебное заведение: НГАСУ Вы: студент ![]() |
Добрый день. Необходимо составить программу для вычисления и вывода вычисленного значения на принтер и экран дисплея в виде: Функция равна <числовое значение>.
z=x^2+(|1+y|)^{1/2}, где у= a^2+b^2, если a^2<b^2, -12.8, если a^2=b^2, a, если a^2>b^2. Программа: Program kz1; Uses Printer; Var a,b,x,y,z: real; begin writeln ('введите число а,b'); read(y); if sqr(a)<sqr(b) then y:=sqr(a)+sqr(b); if sqr(a)=sqr(b) then y:=-12.8; if sqr(a)>sqr(b) then y:=a; write('y=',y); writeln (введите число х); read(z); if y=sqr(a)+sqr(b) then z:=sqr(x)+sqrt(abs(1+sqr(a)+sqr(b))); if y=12.8 then z:=sqr(x)+sqrt(abs(1-12.8)); if y=a then z:=sqr(x)+sqrt(abs(1+a)); write('z=',z); end. Проверьте, пожалуйста, верно ли я составила программу, точнее алгоритм? |
граф Монте-Кристо |
![]()
Сообщение
#2
|
Доцент ![]() ![]() ![]() ![]() ![]() ![]() Группа: Преподаватели Сообщений: 3 840 Регистрация: 27.9.2007 Из: Старый Оскол Город: Москва Учебное заведение: МФТИ/МАИ Вы: другое ![]() |
По алгоритму - последние три иф'а немного не понятны. Зачем они вообще? Не проще просто подставить у и х в заданную функцию?
По реализации - много ошибок. printer - для вывода на принтер? Если так, то Вы это нигде не используете. Потом, вводите а и b, а считываете зачем-то в одну переменную, да ещё и в у. В общем, ещё разбираться и разбираться. |
Марина Игоревна |
![]()
Сообщение
#3
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 177 Регистрация: 19.2.2009 Город: Славгород Учебное заведение: НГАСУ Вы: студент ![]() |
Добрый вечер. Разбиралась с паскалем. Вот что получилось:
(IMG:http://s43.radikal.ru/i100/1009/47/ebd9deb63cce.jpg) (IMG:http://i057.radikal.ru/1009/7f/d46444a8d6e4.jpg) Еще необходимо по усмотрению выбрать числовые значения , ввести их с клавиатуры и определить какая ветвь вычислений "проработает" при введенных значениях. Это просто можно будет записать числа и указать какая ветвь сработает? |
Vahappaday |
![]()
Сообщение
#4
|
Аспирант ![]() ![]() ![]() Группа: Продвинутые Сообщений: 334 Регистрация: 26.4.2009 Город: Липецк Учебное заведение: ЛГТУ Вы: студент ![]() |
угу)) теперь как-то так)) Хотя и if'ы немного необычно расположены, но всё будет работать))
Как проверять - зависит от преподавателя.... Как на мой вкус, Вашей проверки вполне достаточно... Программку проверяли сами, работает? |
Марина Игоревна |
![]()
Сообщение
#5
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 177 Регистрация: 19.2.2009 Город: Славгород Учебное заведение: НГАСУ Вы: студент ![]() |
Да, проверяла) Работает, просто оценка со стороны знающих людей мне не помешает, тем более что университет за 400 км от меня, к педагогу точно не скоро попаду. Спасибо Вам (IMG:style_emoticons/default/smile.gif)
|
Марина Игоревна |
![]()
Сообщение
#6
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 177 Регистрация: 19.2.2009 Город: Славгород Учебное заведение: НГАСУ Вы: студент ![]() |
Добрый вечер. Еще одна задача. Не могли бы Вы ее проверить?
Задача: Составить две программы вычисления и вывода на принтер значений аргумента и функции y=f(x). Первая программа вычисляет у для х, изменяющегосяв заданном интервале с указанным шагом х. Во второй программе значения аргумента задаются массивом. В первой программе цикл организовать с помощью условного оператора FOR, во второй - с использованием оператора цикла DO. x^3+2sin^2*(x+3)^2 а)0(<=)x(<=)5, dx=0.5 б)х=|1,2;2,2;3,0;8,0;3,4| Решение: (IMG:http://s59.radikal.ru/i165/1009/26/e7f8aa69f53f.jpg) (IMG:http://s001.radikal.ru/i194/1009/53/ffb0e78eac2b.jpg) (IMG:http://i072.radikal.ru/1009/35/b114528e9692.jpg) (IMG:http://i072.radikal.ru/1009/54/2008e48e8c74.jpg) Верно ли я решила задачу? |
Vahappaday |
![]()
Сообщение
#7
|
Аспирант ![]() ![]() ![]() Группа: Продвинутые Сообщений: 334 Регистрация: 26.4.2009 Город: Липецк Учебное заведение: ЛГТУ Вы: студент ![]() |
Перепутали местами FOR и DO))
Всё наоборот, в первом случае решено через DO, во втором через FOR) |
Марина Игоревна |
![]()
Сообщение
#8
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 177 Регистрация: 19.2.2009 Город: Славгород Учебное заведение: НГАСУ Вы: студент ![]() |
Ну, получается мне просто программки местами надо поменять?))
|
julia_lisha |
![]()
Сообщение
#9
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 147 Регистрация: 19.12.2009 Из: Omsk Город: omsk Учебное заведение: ОмГУ ![]() |
FOR и DO это циклы)
|
Марина Игоревна |
![]()
Сообщение
#10
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 177 Регистрация: 19.2.2009 Город: Славгород Учебное заведение: НГАСУ Вы: студент ![]() |
Значит просто поменять местами строки в программе, я тут запуталась, хотя действительно по невнимательности ошибку сделала
|
Марина Игоревна |
![]()
Сообщение
#11
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 177 Регистрация: 19.2.2009 Город: Славгород Учебное заведение: НГАСУ Вы: студент ![]() |
Или я опять не права??
|
Vahappaday |
![]()
Сообщение
#12
|
Аспирант ![]() ![]() ![]() Группа: Продвинутые Сообщений: 334 Регистрация: 26.4.2009 Город: Липецк Учебное заведение: ЛГТУ Вы: студент ![]() |
А можно текстом программку?)) Блок-схемы ладно, а вот программки разглядывать не очень удобно)) Да и копировать вставить иногда хочется)
|
Марина Игоревна |
![]()
Сообщение
#13
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 177 Регистрация: 19.2.2009 Город: Славгород Учебное заведение: НГАСУ Вы: студент ![]() |
Program zad_2_1;
USES PRINTER; Var x, y: real; Begin x:=0; for x<=5 do begin y:=x*x*x + 2sqr(sin(sqr(x+3))); writeln ('x=', x:6:2, 'y=', y:6:2); writeln (LST, 'x=', x:6:2, 'y=',y:6:2); x:=x+0,5: end; End. Program zad_2_2; USES PRINTER; Var x,y: real; i: integer; a: array [1..5] of real; Begin a[1]:=1.2; a[2]:=2.2; a[3]:=3.0; a[4]:=8.0; a[5]:=3.4; while i:=1 to 5 do begin y:=a[i]*a[i]*a[i]+2*sqr(sin(sqr(a[i]+3))); writeln ('a[',i,']=', a[i]:6:2, 'y=',y:6:2); writeln (LST, 'y=', y:6:2); end; End. Вот, попыталась исправить. |
Vahappaday |
![]()
Сообщение
#14
|
Аспирант ![]() ![]() ![]() Группа: Продвинутые Сообщений: 334 Регистрация: 26.4.2009 Город: Липецк Учебное заведение: ЛГТУ Вы: студент ![]() |
Во-первых,
Код x:=x+0,5: - точку поправьте на запятую, двоеточие - на точку с запятой.Во-вторых, конструкции вида Код for x<=5 do и Код while i:=1 to 5 do в Паскале недопустимы. Код while условие do или Код for счётчик = ... to ... do Кстати, сразу подумайте, как сделать в FOR нецелое увеличение счётчика. Готовых средств в паскале не нашёл, а раз вам обязательно нужно именно через FOR, то придётся увеличивать максимальное значение в 2 раза, а в итерации делить значение счётчика на два)) |
Julia |
![]()
Сообщение
#15
|
Ассистент ![]() ![]() ![]() ![]() Группа: Julia Сообщений: 593 Регистрация: 23.2.2007 Город: Улан-Удэ Учебное заведение: БГУ Вы: преподаватель ![]() |
Добрый вечер. Еще одна задача. Не могли бы Вы ее проверить? Задача: Составить две программы вычисления и вывода на принтер значений аргумента и функции y=f(x). Первая программа вычисляет у для х, изменяющегосяв заданном интервале с указанным шагом х. Во второй программе значения аргумента задаются массивом. В первой программе цикл организовать с помощью условного оператора FOR, во второй - с использованием оператора цикла DO. x^3+2sin^2*(x+3)^2 а)0(<=)x(<=)5, dx=0.5 б)х=|1,2;2,2;3,0;8,0;3,4| Вы уверены, что задание записано правильно? Цикл с параметром FOR - это БЕЗусловный оператор. Логичней в этой задаче использовать условный оператор WHILE. Во второй задаче логичней воспользоваться циклом с параметром. |
Марина Игоревна |
![]()
Сообщение
#16
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 177 Регистрация: 19.2.2009 Город: Славгород Учебное заведение: НГАСУ Вы: студент ![]() |
Задание списано с методички, а верно ли его составили я уж не знаю( Хорошо, буду думать как правильно исправить
|
Марина Игоревна |
![]()
Сообщение
#17
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 177 Регистрация: 19.2.2009 Город: Славгород Учебное заведение: НГАСУ Вы: студент ![]() |
Program zad_2_2;
USES PRINTER; Var x,y: real; i: integer; a: array [1..5] of real; Begin a[1]:=1.2; a[2]:=2.2; a[3]:=3.0; a[4]:=8.0; a[5]:=3.4; while i>=1 and <= 5 do begin y:=a[i]*a[i]*a[i]+2*sqr(sin(sqr(a[i]+3))); writeln ('a[',i,']=', a[i]:6:2, 'y=',y:6:2); writeln (LST, 'y=', y:6:2); end; End. Program zad_2_1; USES PRINTER; Var x, y: real; Begin x:=0; for x:=5 to 1 do begin y:=x*x*x + 2sqr(sin(sqr(x+3))); writeln ('x=', x:6:2, 'y=', y:6:2); writeln (LST, 'x=', x:6:2, 'y=',y:6:2); x:=x+0,5: end; End. А теперь правильно? |
Julia |
![]()
Сообщение
#18
|
Ассистент ![]() ![]() ![]() ![]() Группа: Julia Сообщений: 593 Регистрация: 23.2.2007 Город: Улан-Удэ Учебное заведение: БГУ Вы: преподаватель ![]() |
Program zad_2_2;
USES PRINTER; Var x,y: real; i: integer; a: array [1..5] of real; Begin a[1]:=1.2; a[2]:=2.2; a[3]:=3.0; a[4]:=8.0; a[5]:=3.4; while (i>=1) and (i<= 5) do begin y:=a[i]*a[i]*a[i]+2*sqr(sin(sqr(a[i]+3))); writeln ('a[',i,']=', a[i]:6:2, 'y=',y:6:2); writeln (LST, 'y=', y:6:2); end; End. Вторая задача неверна, поскольку x - параметр цикл, он не может быть вещественным числом. |
Марина Игоревна |
![]()
Сообщение
#19
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 177 Регистрация: 19.2.2009 Город: Славгород Учебное заведение: НГАСУ Вы: студент ![]() |
Program zad_2_1;
USES PRINTER; Var y: real; x: integer; Begin x:=0; for x:=5 to 0 do begin y:=x*x*x + 2sqr(sin(sqr(x+3))); writeln ('x=', x:6:2, 'y=', y:6:2); writeln (LST, 'x=', x:6:2, 'y=',y:6:2); x:=x+0,5: end; End. А если так исправить? посмотрела подобные примеры вроде бы так должно быть. |
Julia |
![]()
Сообщение
#20
|
Ассистент ![]() ![]() ![]() ![]() Группа: Julia Сообщений: 593 Регистрация: 23.2.2007 Город: Улан-Удэ Учебное заведение: БГУ Вы: преподаватель ![]() |
В 2_2 еще ошибка: i не меняется.
В 2_1 при первом же проходе цикла x станет 5,5 - не integer. Отделите параметр цикла от аргумента функции, используйте разные переменные. Если в цикле с параметром первое значение больше второго, то вместо to используется downto. |
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 25.5.2025, 19:28 |
Зеркало сайта Решебник.Ру - reshebnik.org.ru