Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
YaP_laby.pdf
Скачиваний:
156
Добавлен:
31.05.2015
Размер:
915.49 Кб
Скачать

ЛАБОРАТОРНАЯ РАБОТА № 2 ВЫЧИСЛЕНИЕ ВЫРАЖЕНИЙ

Цель работы – овладеть практическими навыками разработки, программирования вычислительного процесса линейной структуры, а также по отладке и тестированию программ.

Задания

1.Изучить:

а) запись констант, переменных, стандартных функций; б)правила записи арифметических выражений; в)арифметический оператор присваивания;

г) организацию простейшего ввода-вывода данных.

2.Разработать алгоритм решения в соответствии с заданием.

3.Составить программу решения задачи.

4.Подготовить тестовый вариант исходных данных.

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

1.Какие типы величин используются в языке программирования?

2.Указать диапазон значений величин целого и действительного типов.

3.Какие имена переменных допустимы в программе?

4.Как задать тип переменной в программе?

5.Указать имена стандартных функций:

x, ex ,sin(x), cos(x), ln(x), x .

6.Можно ли в качестве операнда в арифметическом выражении использовать:

а) имя массива; б) имя стандартной функции;

в) имя символьной переменной или переменной логического типа?

7.Назвать последовательность действий при выполнении арифметического оператора присваивания. Допустимо ли использование величин разных типов в арифметическом выражении?

8.Написать арифметический оператор присваивания для вычисления

значения p(x) = ((((a5 x + a4 )x + a3 )x + a2 )x + a1 )x + ao .

9.Указать старшинство выполнения операций при вычислении арифметического выражения.

10.Указать средства, имеющиеся в языке программирования, для управления размещением данных на строке монитора. Как организовать вы-

Языки программирования. Метод. указания по лаб. работам

-10-

ЛАБОРАТОРНАЯ РАБОТА № 2 ВЫЧИСЛЕНИЕ ВЫРАЖЕНИЙ

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

вод значений, сопровождая выводимое числовое значение наименованием переменной? Как организовать пропуск одной, двух строк при выводе?

11.Как выбрать значения исходных данных для тестового варианта счета?

12.Алгоритм аналогичен рецепту приготовления блюда, но некоторые шаги, возможные в рецепте, абсолютно недопустимы в алгоритме. Какие шаги будут допустимы?

Насыпьте две чайные ложки сахара в глубокую чашку. Добавьте одно яйцо.

Добавьте одну кружку молока.

Добавьте одну унцию рома, если вы не за рулем. Добавьте ванильного экстракта по вкусу. Взбивайте до полного размешивания. Перелейте в подходящий стакан.

Посыпьте мускатным орехом.

13.Назвать основные устройства компонентов.

14.Что является данными для программы, суммирующей два числа?

15.Чем различаются программы, написанные на языках высокого уровня и на машинном языке?

16.Если в программе пропущена закрывающая скобка ), в какой момент будет обнаружена эта ошибки? К какому виду относятся подобные ошибки?

17.С чего начинается выполнение программы С++? Что такое cout ?

18.Какое действие выполняет инструкция #include<iostream>?

19.Необходимо ли переменную объявлять до ее использования?

20.Показать, как переменной min присвоить значение 0.

21.Можно ли в одной инструкции объявить сразунесколько переменных?

22.Какой оператор используется в С++ для ввода данных?

23.С каким устройством по умолчанию связан идентификатор cin?

24.Что означает код \n?

25.Как обозначается блок кода?

26.Что является признаком завершения инструкции в С++?

27.Все инструкции С++ должны начинаться и завершаться на одной строке. Верно ли это?

Вариантызаданий

Дано вещественное x . Вычислить y .

1.y =3((sin x)3 + (cos22 x)2 ) .

2.y =5x4 + 4x3 2x2 +7x .

3.y = x2 +1 0.01.

Языки программирования. Метод. указания по лаб. работам

-11-

 

ЛАБОРАТОРНАЯ РАБОТА № 2 ВЫЧИСЛЕНИЕ ВЫРАЖЕНИЙ

 

 

 

 

 

 

 

 

 

 

Варианты заданий

4.

y = ln( x +1)

x

.

 

 

 

2

 

 

5.

y =

4x4 +3 .

 

 

5x3 2

6.

y = ln2 x +

x3

.

 

 

 

 

 

3

 

 

 

 

7.

y = 2((sin x)3 +cosx) .

 

 

 

 

 

8.

y =

x +

x2 4

.

 

 

2

 

 

 

 

 

9.

y =

 

x2 + 4

0.5.

10. y = 7x5 2x3 . x2 +1

11. y = x2 8 +0.5 .

12. y = sin3 x +cos x . 3

13.y = 4ex +0.2.

14.y = 2x4 1 .

15.y = 6x3 3x2 +1.

16.y = 2(tgx + sin2 x) .

17.y = x3 1 +0.2.

18.y = 7(x3 +3x2 3).

19.y = 7x2 2 .

20.y = 2(cos x)2 +(tgx)2 .

21.y = x + x2 4 .

3

22.y = 7(x5 3x2 + 2) .

23.y = 4x2 +1 .

x1

24.y = ln x2 12 .

25.y = 7x2 3 .

x2 +1

26.Треугольник задан координатами вершин. Найти длину всех меди-

ан.

27.Равнобедренная трапеция задана координатами вершин. Найти длину высоты.

28.Треугольник задан координатами вершин. Найти длину всех высот.

Языки программирования. Метод. указания по лаб. работам

-12-

ЛАБОРАТОРНАЯ РАБОТА № 2 ВЫЧИСЛЕНИЕ ВЫРАЖЕНИЙ

Варианты заданий

29. Параллелограмм задан координатами вершин. Найти координаты точки пересечения диагоналей.

30. Вычислить 2x4 3x3 + 4x2 5x +6. Разрешается использовать не более четырех умножений и четырех сложений и вычитаний.

31.Вычислить 3x2y2 3xy2+5x – 7x2y – 5y2 + 15xy + 2x2 3x + 10y + 6.

Разрешается использовать не более восьми умножений и восьми сложений и вычитаний.

32.Вычислить a64 за шесть операций.

33.Переставить две средние цифры четырехзначного числа.

34.Переставить две последние цифры четырехзначного числа.

35.Треугольник задан координатами вершин. Найти длинувсех биссектрис.

Примеррешениявариантазадания

Дано вещественное x. Вычислить y.

 

 

y = ln(|x|+1)

sin2 x +sin3 x

 

 

x4 +1

cos0.5(x2 +1) +1.5

 

 

 

Анализ задачи.

1.Начальное данное x.

2.Результат вычисление y.

3.Составляем программу ввода с клавиатуры начальных данных и вывод данных на экран монитора.

void main()

{

float x, y; clrscr();

cout << “Введи с клавиатуры x= “; cin >> x;

cout << “Введено число x= ” << x << “\n”; getch();

}

4. Составляем программу вычисления y = sin 2 x + sin3 x. void main()

{

float x, y, w; clrscr();

cout << “Введи с клавиатуры x= “; cin >> x;

w = sin(x)*sin(x); y = w + w*sin(x);

cout << “Значение y= “ << y << “\n”;

Языки программирования. Метод. указания по лаб. работам

-13-

ЛАБОРАТОРНАЯ РАБОТА № 2 ВЫЧИСЛЕНИЕ ВЫРАЖЕНИЙ

Пример решения варианта задания

getch();

}

Комментарий к шагу 4. Обратите внимание, что для промежуточного значения величины sin 2 x была введена дополнительная переменная w. Для проверки работы данной программы можно ввести с клавиатуры значения углов, синусы которых известны.

5. Составляем программу вычисления y =

z

, где z = sin 2 x + sin3 x,

w

 

 

 

 

w = cos(

x2 +1

)+1.5.

 

 

 

 

 

2

 

 

 

void main()

 

 

{

 

 

 

 

float x, y, w, z;

 

 

clrscr();

 

 

cout << “Введи с клавиатуры x= “;

 

 

cin >> x;

 

 

w = sin(x)*sin(x);

 

 

z = w + w*sin(x);

 

 

w = cos(0.5*(x*x+1.));

 

 

w = w + 1.5;

 

 

y = z/w;

 

 

cout << “Значение y= “ << y << “\n”;

 

 

getch();

 

 

}

 

 

 

 

6. Завершаем программу для решения поставленной задачи.

void main()

{

float x, y, w, z; clrscr();

cout << “Введи с клавиатуры x= “; cin >> x;

w = sin(x)*sin(x); z = w + w*sin(x);

w = cos(0.5*(x*x+1.)); w = w + 1.5;

y = z/w;

z = log( fabs(x) +1);

w = sqrt( pow(x,4)+1.); y = z*(y – w);

Языки программирования. Метод. указания по лаб. работам

-14-

ЛАБОРАТОРНАЯ РАБОТА № 2 ВЫЧИСЛЕНИЕ ВЫРАЖЕНИЙ

Пример решения варианта задания

cout << “Значение y= “ << y << “\n”; getch();

}

Комментарий к решению задачи. Программа для решения данной задачи может быть такой:

void main()

{

float x, y; clrscr();

cout << “Введи с клавиатуры x= “; cin >> x;

cout << “Введено число x= ” << x << “\n”; y = sin(x)*sin(x);

y=log (fabs(x)+1))*( (y+y*sin(x))/(cos(5*(x*x+1)+1.5) – sqrt(pow(x,4)+1));

cout << “Значение y= “ << y << “\n”; getch(); }

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

Замечание. Определить структуру данных для реальных задач не просто. Более того, в процессе проектирования программы может оказаться, что те данные, которые были определены на первом этапе, не востребованы, а те данные, которые оказались необходимыми для работы программы, не предусмотрены. В таких случаях происходит корректировка в структуре данных программы. Некоторые переменные удаляются из описания программы, другие, наоборот, добавляются. При этом важно понимать, что структура дан-

ных является важным моментом при проектировании программы. К сожа-

лению, задачи, на которых осваиваются приемы программирования, чаще всего не столь сложны и громоздки по сравнению с реальными информационными задачами. И поэтому важность вопроса определения структуры данных на учебных задачах не столь заметна.

Языки программирования. Метод. указания по лаб. работам

-15-

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]