Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







ПРИМЕР ВЫПОЛНЕНИЯ Лабораторной РАБОТЫ





 

Вычислить на ЭВМ значения у и р, используя расчетные формулы-

 

у=а 3x2+

 

p=ln(a+x2)+sin2

 

при значениях а=0,59, z=-4.8, х=2,1

 

Схема алгоритма решения представлена на рис. 3. В блоке 2 вводятся исходные данные а, х, z. В блоке 3 вычисляется значение тангенса. В блоках 4 и 5 вычисляются значения функций у и р. а в блоке 6 осуществляется вывод вычисленных значений.

 

Program lab_1(input,output);

{ лабораторная работа №2}

{СТУДЕНТА ГРУППЫ ___ ИВАНОВА И.И.}

var

a,x,z,y,p,c: real;

begin

writeln(‘введите a,x,z’);

read(a,x,z);

c:=sin(x*x)/cos(x*x);

y:=a*c*c*c*sqr(sin(z*z/(a*a+x*x)));

p:=ln(a+x*x)+sqr(sin(z/a));

writeln(‘y=’,y:8:3,’p=’,p:8:3);

end.

 

 

Если сравнивать язык Си с языком Pascal, то можно сделать вывод, что Си дает большую свободу действиям программиста. С другой стороны Си позволяет совершить ошибки, которые в Pascal совершить невозможно.

 

Методические рекомендации к выполнению лабораторной работы

Отчет к лабораторной работе должен содержать:

1. Постановка задачи

a) Список входных данных

b) Список выходных данных

c) Список промежуточных переменных

2. Разработка алгоритма решения задач

a) Разработка блок-схемы решения задачи.

b) Список функций

3. Разработка программного кода к алгоритму.

4. Проверка алгоритма (листинг)

a) Рассмотрение всех не стандартных ситуаций

b) Ограничения и допущения, если имеются

5. Ответы на контрольные вопросы.

 

Задание к лабораторной работе

Разработать алгоритм решения задачи (по вариантам) и написать программы на языках Си и ТР.

 

Вариант задания Расчетные формулы Значения исходных данных
  a=2cos(x-p/6)/2+sin2y b=1+z/3+z2/5 x=1.426 y=-1.220 z=3.5
  b= êxy/x ê*y-z/(y-x) g=(y-x)(y-z /(y-x)) /1+(y-x)2   x=1.825 y=18.225 z=-3.298
  Y=e-btsin(at+b)- S=bsin(at2cos2t)-1 a=-0.5 b=1.7 t=0.44
  W= -b2sin3(x+a)/x Y=cos2x3-x a=1.5 b=15.5 x=-2.9
  S=x3tg2(x+b)2+a/ Q=bx2-a/eax-1 a=16.5 b=3.4 x=0.61
  R=x2(x+1)/b-sin2(x+a) S= +cos2(x+b)3 a=0.7 b=0.05 x=0.5
  Y=sin3(x2+a)2- Z= (x+b)3 a=1,1 b=0,004 x=0,2
  F= Z=m cos (bt sin t)+c m=2 c=-1 t=1,2 b=0,7
  y=b tg2x- d=ae-axcos(bx/a) a=3,2 b=17,5 x=-4,8
  f=ln(a+x2)+sin2(x/b) z=e-cx a=10,2 b=9,2 x=2,2 c=0,5
  y= r= -b2sin3(x+a)/x a=0,3 b=0,9 x=0,61
  Z=cos2 x 3 -x/ a=0,5 b=3,1 x=1,4
  U= F=e2x ln (a+x) -b3xln(b-x)   a=0,5 b=2,9 x=0,3
  Z= -c m ln (b-x) S =e-ax +e –b x m=0,7 c=2,1 x=1,7 a=0,5 b=1,08
  M= /1+tg3(n-k) H =sin k2-e-nk n=3,8 k=0.9 1=0,78
  S= M=cos2t3-x/ v=1,72 t=-1,5 w=0.3

 

Контрольные вопросы

1. Опишите особенности линейной алгоритмической конструкции.

2. В чем сходства и различия языков Си/С++ и Turbo Pascal?

3. Сравните структуры программ, названия основных типов данных, описание раздела подключения библиотек, раздел описания переменных, функции ввода-вывода данных. Оформите в таблице сравнений:

  Си Turbo Pascal
Структура программы    
Основные типы данных: Целый Вещественный….    

 


Лабораторная работа № 3

ПРОГРАММИРОВАНИЕ ПРОЦЕССОВ с разветвляющейся структурой

 

Цель работы: овладение практическими навыками разработки алгоритмов и программ с разветвляющейся структурой на языках Turbo Pascal и С.

 

Теоретический материал

На практике редко удается представить схему алгоритма решения задачи в виде линейной структуры. Часто в зависимости от каких-либо значений промежуточных результатов необходимо организовать вычисления по одним или другим формулам. В зависимости от выполнения некоторого логического условия вычислительный процесс осуществляется по одной или другой ветви.

Алгоритм такого вычислительного процесса называется алгоритмом разветвляющейся структуры.

В качестве условия в разветвляющемся алгоритме может быть использовано любое понятное исполнителю утверждение, которое может соблюдаться (быть истинно) или не соблюдаться (быть ложно). Такое утверждение может быть выражено как словами, так и формулой. Таким образом, алгоритм ветвления состоит из условия и двух последовательностей команд.

В зависимости от того, в обеих ветвях решения задачи находится последовательность команд или только в одной, разветвляющиеся алгоритмы делятся на полные и не полные (сокращенные).

Стандартные блок-схемы разветвляющегося алгоритма приведены ниже:

 

Условные конструкции в ТР.

Разветвления в программах используют операторы перехода, условный и выбора варианта.

1) Оператор безусловного перехода GOTO позволяет изменять последовательность выполнения операторов в программе.

Формат записи оператора:

GOTO <метка>; где

<метка> - имя метки, отличающей ту строку, на которую требуется выполнить переход.

Имя метки должно быть предварительно описано в разделе описания меток Label.

Неправильное использование в программе оператора GOTO усложняет читаемость программы.

Например:

Label 1,3,8,10;

.....

Goto 8

.....

8: x: = A+ B

2) Составной оператор (begin … end) представляет собой совокупность последовательно выполняемых операторов, заключенных в операторные скобки begin … end.

Этот оператор записывается следующим образом:

begin

<оператор 1>;

<оператор 2>;

..................

<оператор N>

end;

Составной оператор используется в тех случаях, когда в соответствии с правилами записи языка TURBO PASCAL можно записать только один оператор, в то время как требуется выполнить несколько операторов.

Отдельные операторы внутри составного оператора отделяются друг от друга точкой с запятой.Перед символом end точку с запятой можно не ставить, т. к. это слово не является отдельным оператором. Если же «;» будут поставлены, то они будут рассматриваться как пустой оператор, т. е. оператор не выполняющий никакого действия.Сам блок операторов программы является (можно считать) составным оператором, т. к. он тоже заключен в операторные скобки BEGIN... END, внутри которых располагается последовательность операторов, разделенных «;».

Например:

Begin

A:=2;

B:=x+y;

End;

 

3) Условный оператор IF обеспечивает в зависимости от условия выбор одного из возможных действий.

Существует два варианта записи оператора:

a) Полный вариант:

If S then A else B;

b) Укороченный вариант:

If S then A;

где: S – условие (логическое выражение), которое проверяется на истинность.

A – оператор (только один!), выполняющейся, если выражение S – истинно.

B – оператор (только один!), выполняющейся, если выражение S – ложно.

Если вместо A или B требуется использовать несколько операторов, то применяется составной оператор (BEGIN... END).

Примеры использования оператора IF приведены в Приложении 1.

4) Оператор выбора варианта Case … of … end.

Используется для обработки ситуаций с несколькими вариантами решения (путем выбора одного из нескольких операторов), выбираемых в зависимости от некоторого выражения, называемого селектором.

Существует две формы записи этого оператора:

 

1) Case S of c1: <оператор 1>; c2: < оператор 2>; …………………. cN: < оператор N> else < оператор> end; 2) Case S of c1: <оператор 1>; c2: < оператор 2>; …………………. cN: < оператор N> end;

где S – выражение порядкового типа, значение которого вычисляется;

сl,c2,...,сN—это константы или метки, с которыми сравниваются значения выражения селектора (S). Они должны быть одного гита с селектором.

Выбор оператора определяется совпадением значения селектора S и константы (метки сl,c2,...,cN), стоящей перед оператором.

< оператор 1 >, < оператор 2 >, < оператор N > — один оператор, либо составной оператор (begin... end),

< оператор > — оператор, который выполнится, если значение выражения S не совпадет ни с одной из меток (констант) сl,c2,...,cN.

Примеры использования оператора IF.

a) IF p>0.5 THEM GOTO 15;

b) IF (x>0) AND (x<=10) THEN T:=x*3 ELSE T:=SQRT(y);

Вложенные IF:

IF X<=A THEN Z:=sin(x) ELSE IF x>0 THEN Z:=sin(x)/cos(x) ELSE Z:=cos(x);

Ключевое слово ELSE всегда относится к ближайшему ему IF.

 

Пример 1. Вычислить и вывести на экран значение заданной функции

 

где t=2.2.

 

 

Текст программы:

Program Lab21;

Const

t=2.2;

Var

x,z:real;

Begin

Writeln('Введите x');

Read(x);

If x<0.5 then z:=(ln(exp(3*ln(x)))+sqr(x))/sqrt(x+t)

else if x=0.5 then z:=sqrt(x+t)+1/x

else z:=cos(x)+t*(sqr(sin(x)));

Writeln ('z=',z:8:3);

End.

Результат выполнения программы:

z(0.1)=-4.548

z(0.5)=3.643

z(1)=2.098

 

Пример 2. Ввести число от 0 до 5. Вывести его название на английском языке.

 

Текст программы:

Program lab22;

Var

i:0..5;

Begin

Writeln('Введите целое число от 0 до 5');

Read(i);

Case i of

0:writeln('zero');

1:writeln('one');

2:writeln('two');

3:writeln('three');

4:writeln('four');

5:writeln('five');

end;

End.

 

Пример 3. Определение частного от деления целых чисел

{Вариант № 1 (с применением оператора GOTO)}

Program DELZEL_1(input,output);

Label metka1;

Var x, y, Res: integer;

BEGIN

Write (‘ Введите делимое: ’);

Readln (x);

Write (‘ Введите делитель: ’);

Readln (y);

If y = 0 then

begin

Writeln (‘ Деление на ноль! ’);

GOTO metka1;

end;

Res: = x div y;

Writeln (‘ Частное равно: ‘, Res: 10: 3);

metka1; {метка пустого оператора}

END.

 

{Вариант № 2 (без оператора GOTO)}

Program DELZEL_1(input,output);

Var x, y, Res: integer;

BEGIN

Write (‘ Введите делимое: ’);

Readln (x);

Write (‘ Введите делитель: ’);

Readln (y);

If y < > 0 then

begin

Res: = x div y;

Writeln (‘ Частное равно: ‘, Res: 10: 3);

end

Else Write (‘ Деление на ноль! ’);

END.

 

Условные конструкции в Си/С++.

1. Операторы if

Эти операторы иначе называются условными операторами и позволяют реализовывать разветвления в программах.

Пример 4. Программа осуществляет преобразование дюймов в сантиметры и сантиметров в дюймы; предполагается, что Вы укажете единицы измерения вводимых данных, добавляя i для дюймов и c для сантиметров:

 

#include <iostream.h>

void main()

{

const float fac = 2.54;

float x, in, cm;

char ch = 0;

cout << "введите длину: ";

cin >> x >> ch;

if (ch == 'i') { // inch - дюймы

in = x;

cm = x*fac;

}

else if (ch == 'c') // cm - сантиметры

{ in = x/fac;

cm = x;

}

cout << in << " in = " << cm << " cm\n";

}

Условие в операторе if должно быть заключено в круглые скобки.

 

2. Операторы switch

Оператор switch производит сопоставление значения с множеством констант.

Проверки в предыдущем примере можно записать так:

 

switch (ch) {

case 'i':

in = x;

cm = x*fac;

break;

case 'c':

in = x/fac;

break;

default:

in = cm = 0;

break;

}

 

Операторы break применяются для выхода из оператора switch. Константы в вариантах case должны быть различными, и если проверяемое значение не совпадает ни с одной из констант, выбирается вариант default. Программисту не обязательно предусматривать default.

 

3. Проверки

Проверка значения может осуществляться или оператором if, или оператором switch:

 

If (выражение) оператор







Что делать, если нет взаимности? А теперь спустимся с небес на землю. Приземлились? Продолжаем разговор...

ЧТО ПРОИСХОДИТ ВО ВЗРОСЛОЙ ЖИЗНИ? Если вы все еще «неправильно» связаны с матерью, вы избегаете отделения и независимого взрослого существования...

Что вызывает тренды на фондовых и товарных рынках Объяснение теории грузового поезда Первые 17 лет моих рыночных исследований сводились к попыткам вычис­лить, когда этот...

Система охраняемых территорий в США Изучение особо охраняемых природных территорий(ООПТ) США представляет особый интерес по многим причинам...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.