Программирование. Паскаль! - вопрос №172542

Здравствуйте не могли бы вы помочь решить эдак полторы задачи на паскале?

Заранее спасибо..

Вот первое задание с которым мне удалось справиться

Задание 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.

Вычислить сумму и произведение ненулевых элементов мат­рицы, у которых совпадают номер строки и столбца, в ко­торых они находятся.



Ответов пока нет

Еva

от 100 p.
Сейчас на сайте
Читать ответы

Юлия

от 0 p.
Читать ответы

Татьяна

от 0 p.
Читать ответы
Посмотреть всех экспертов из раздела Учеба и наука > Информатика
Пользуйтесь нашим приложением Доступно на Google Play Загрузите в App Store