Здравствуйте не могли бы вы помочь решить эдак полторы задачи на паскале?
Заранее спасибо..
Вот первое задание с которым мне удалось справиться
Задание 1.Разветвляющийся алгоритм.
Цель задания:
подготовка программы, осуществляющей расчет по формуле вида: , где А и В — функции двух аргументов.
Выбор конкретного вида функций А(х, р) и В(х, р) определяется номером варианта (см. табл. 1).
Обратите внимание, что расчет по формуле не всегда возможен (знаменательобращается в ноль, под корнем появляется отрицательное значение и т. п.). Если заранее не учесть возможность возникновения таких ситуаций, то при выполнении программы будут фиксироваться неустранимые ошибки, приводящие к аварийному завершению. Можно столкнуться и с более неприятным случаем, когда после выявления ошибки выполнение программы все же продолжается. Очевидно, что в этом случае результаты расчета будут неверны, но, тем не менее, программа их напечатает.
Чтобы избежать таких неприятностей, внимательно проанализируйте Ваше задание, выявите все случаи, исключающие проведение расчета, и постройте алгоритм таким образом, чтобы при их возникновении вместо результата выводилось диагностическое сообщение. Например: «Расчет невозможен. В знаменателе ноль». Контрольные данные подберите так, чтобы проверялось действие программы во всех аварийных ситуациях.
Таблица 1. Варианты задач (к заданию 1)
Далее во втором задании надо модернизировать первую программу.
Это удалось мне сделать только на половину и чуть больше..
но, к сожалению охватил ступор и не знаю, что делать..
Очень вас прошу, помогите пожалуйста с остальными заданиями..
Вот код программы что у меня получилось сделать.
program blabla2;<br />var tg,m,temp: real;<br />s:array [1..10] of string;<br />c,x,p:array [1..10] of real;<br />n,i:integer;<br />begin<br />Writeln ('Vvedite kol-vo par'); <br />readln (n);<br />for i:=1 to n do<br />Begin<br />Writeln ('Vvedite znacheniya X,P');<br /><br />readln (x[i]);<br />Readln (p[i]);<br />end;<br /><br />For i:=1 to n do<br />begin<br /><br /> if 2*x[i]*x[i]-p[i] < 0<br /> then s[i]:= 'koren iz otricatelnogo'<br /> Else if (x[i])+(p[i])=0 then s[i]:= 'logarifma ne sushestvuet'<br /> else begin<br /> temp:=ln(sqr((x[i])+(p[i])))-((x[i])*(x[i]))*((p[i])*(p[i])*(p[i])*(p[i]));<br /> if cos(temp)=0<br /> then s[i]:= 'tangens ne sushestvuet'<br /> else if sin(temp)=0<br /> then s[i]:= '0 v znamenatele'<br /> else begin tg:=sin(temp)/cos(temp);<br /> c[i]:=((3*x[i]*x[i]*x[i])*(p[i]*p[i])-(sqrt(2*x[i])*x[i])-(p[i]))/tg;<br /> Writeln (c[i]);<br /> end;<br /> end;<br />end.И вот задание 2.Задание 2.циклический алгоритм.
При выполнении первого задания для проведения очередного расчета требовалось заново запускать программу. На практике, однако, расчеты чаще всего проводятся для групп исходных данных.
Модифицируйте Вашу программу таким образом, чтобы она вводила указанное количество пар значений X и Р, и лишь после этого выполняла расчеты и печатала результаты. Результаты печатайте в вида таблицы, например такой:
Х
Р
С(x, р)
Примечание
3.271
-.0634
В знаменателе ноль
5.039
1.487
16.832
10.664
-5.208
Под логарифмом отрицательное число
Кроме того, Ваша программа должна при выводе результатов упорядочить их в соответствии с требованиями Вашего варианта (см. табл. 2).
Совет: не пытайтесь сразу создать программу, удовлетворяющую всем требованиям этого задания. Выполните работу в несколько этапов:
а) подготовьте программу, которая будет вводить несколько пар значений X и Р, а затем рассчитывать и печатать результаты в той форме, как это осуществлялось ранее. Для хранения значений X, Р и С(х, р) обязательно используйте массивы — без них Вам не обойтись. При вводе числа пар X и Р проверьте, поместятся ли они в массивы выбранной размерности;
б) включите в программу фрагмент, упорядочивающий перед печатью результаты нужным образом;
в) организуйте вывод результатов в виде таблицы.
Не переходите к следующему этапу, пока не выполните требований предыдущего!
№
Характер расположения результатов в таблице
1.
В порядке увеличения суммы абсолютных величин X и Р.
А если для вам это не будет сложно, и не доставит особых усилий,
Можете что ниибудь подсказать со следующим заданием?
Задание 3.Многомерные массивы.
Задачу, которая предлагается Вам, часто называют табулированием функции, поскольку она связана с составлением таблицы значений функции, соответствующих определенным значениям аргумента.
Первая часть Вашего задания — подготовка программы, табулирующей функцию С(х, р) Вашего варианта при изменении значения аргумента X от значения xl до значения х2 с шагом Нх и аргумента Р — от p1 до р2 с шагом Нр. Результаты напечатайте в виде таблицы-матрицы:
Х / Р
7.425
7.450
7.475
7.500
7.525
7.550
7.575
3.50
-.0634
*
3.581
4.145
6.524
8.745
12.659
5.00
1.487
16.832
-8.245
-5.434
*
*
4.326
6.50
-5.208
**
**
8.987
15.782
68.547
124.317
* — В знаменателе ноль
** — Под логарифмом отрицательное число
Совет:
прежде, чем печатать результаты, наколите их в памяти, используя для этого один или несколько массивов;
При вводе данных организуйте контроль на достоверность: при положительном шаге Нx недопустимо, чтобы xl было больше х2, а при отрицательной величине шага Нx нельзя задавать xl < х2 (аналогично для Нp );
выбранные размерности массивов должны быть достаточны для хранения значений X, Р и таблицы значений функции С(х, р). Поэтому, если число шагов или при введенных исходных данных оказалось больше числа компонент массива в соответствующем измерении, проводить расчеты нельзя. В тех случаях, когда при вводе исходных данных (xl, х2, Нх, p1, р2, Нр) будут зафиксированы описанные (или подобные) ситуации, программа должна сообщать об этом и либо завершать работу, либо повторно запрашивать данные.
При выполнении этой работы не забывайте, что в некоторых клетках Вашей матрицы рассчитать значение С(х, р) для соответствующих значений X и Р нельзя. Такие клетки следует заполнить знаками «*». При этом количество звездочек должно обозначать причину по которой значение функции не было рассчитано.
После таблицы следует вывести расшифровку легенды: что обозначено тем или иным количеством звездочек.
Второй частью Вашего задания будет работа с матрицей значении функции С(х, р). Что именно требуется сделать, Вы узнаете из таблицы 3, выбрав оттуда задачу с номером варианта.
№
Содержание задачи
1.
Вычислить сумму и произведение ненулевых элементов матрицы, у которых совпадают номер строки и столбца, в которых они находятся.