- •1. Краткие теоретические сведения
- •1.1. Алгоритмизация вычислительного процесса
- •1.2. Арифметические операции
- •1.2.1. Знаки операций
- •1.2.2. Операции
- •1.2.3. Арифметические операции
- •1.2.4.1. Операция присваивания
- •1.2.4.6. Операция sizeof
- •1.3. Порядок (старшинство) выполнения арифметических операций
- •1.4. Круглые скобки позволяют переопределить приоритет
- •{ // Начало главной функции double X, y, z, a, b, c, h; // Объявление переменных
- •1.6. Побитовые логические операции и операции сдвига
- •3.6. Использование операторов сдвига для организации ввода и вывода
- •2. Задание
- •2.12. Задания
- •2.12.1. Задание на алгоритмизацию вычислительных процессов (домашнее)
- •2.12.2.1. Формулировка задания
- •2.12.2.2. Варианты задания Варианты задания приведены в табл. 3.14. Вариант соответствует номеру в журнале группы.
- •2.12.2.3. Разработка алгоритма решения
- •2.12.2.4. Определение переменных программы
- •2.12.2.5. Разработка текста программы
- •2.12.2.6. Текст программы
- •При работе программы на экран было выдано следующее:
- •Варианты задания приведены в табл. 3.15. Вариант соответствует номеру в журнале группы.
- •2.12.3.3. Пример решения задачи для варианта № 30 Решение задачи предполагает создание двух программ: упаковки (см. 2.12.3.3.1) и распаковки (см. 2.12.3.3.2)
- •2.12.3.3.1. Программа упаковки
- •2.12.3.3.1.1. Разработка алгоритма решения
- •2.12.3.3.1.2. Определение переменных программы
- •2.12.3.3.1.3. Разработка текста программы
- •2.12.3.3.1.4. Программа
- •2.12.3.3.1.5. Отладка программы
- •2.12.3.3.1.6. Результаты работы программы
- •2.12.3.3.2. Программа распаковки
- •2.12.3.3.2.1. Разработка алгоритма решения.
- •2.12.3.3.2.4. Текст программы
- •2.12.3.3.2. 5. Отладка программы
- •2.12.3.3.2.6. Результаты работы программы
- •2.12.4. Домашнее задание
- •2.12.4.1. Текст программы
- •2.12.4.2. Результаты работы программы
- •3. Выводы
- •4. Требование к отчету
- •5. Вопросы для самоконтроля
- •Литература
- •Оглавление
- •1. Краткие теоретические сведения 2
- •1.1. Алгоритмизация вычислительного процесса 2
2.12.4.1. Текст программы
Полный текст программы приводится ниже.
/**************************************************/
/* Лабораторная работа № 3 */
/* Домашнее задание */
/* Арифметические выражения и функции */
/* Пример решения. Вариант № 30 */
/**************************************************/
#include <stdio.h>
#include <math.h>
# include<conio.h>
int main(void)
{
/* Параметры, которые вводятся */
double x,y;
/* Параметры, которые задаются в программе */
double pi=3/14159;
double b; /* результаты */
double z; /* рабочая переменная */
printf("Введите x, y >");
scanf("%lf %lf",&x,&y);
z=fabs(x*y-1);
b=pow(pi*tan(z), -sin(z));
printf("b = %lg\n",b);
getch();
return 0;
}
2.12.4.2. Результаты работы программы
Введите x, y >3.0 2.0
b = 0
3. Выводы
Выполнение этой лабораторной работы должно познакомить Вас с алгоритмизацией вычислительных процессов и с базовыми типами вычислительных процессов (линейным, разветвляющимся и циклическим). Вы должны научиться: составлять простейшие алгоритмы линейных, разветвляющихся и циклических вычислительных процессов; выполнять математические операции в своих программах с использованием арифметических операторов языка C++; используя круглые скобки в арифметических выражениях, управлять порядком, в котором язык C++ выполняет операции; использовать побитовые операции языка C ++; использованию директив препроцессора.
Выполнение этой лабораторной работы позволит закрепить знания: по приоритету арифметических операция языка С++; по структуре программы на языке С++; выработать навыки программирование алгебраических выражений с использованием арифметических операций и стандартных математических функций,
4. Требование к отчету
В отчете должны быть отображены следующие пункты:
1. Название работы.
2. Цель работы.
3. Задание.
4. Таблицы соответствия переменных.
5. Краткое описание арифметических операций и приоритетов операций.
6. Краткое описание операций побитового сдвига.
6. Листинги всех программ задания.
7. Результаты выполнения всех программ (скриншоты) задания.
8. Выводы.
5. Вопросы для самоконтроля
1. Что понимают под алгоритмом?
2. Какими свойствами должен обладать алгоритм?
3. Какие существуют способы записи алгоритмов?
4. В чем заключается способ записи алгоритмов в виде блок-схем?
5. Какими достоинствами обладает способ записи алгоритмов в виде блок-схем?
6. Какие условные графические изображения используются для обозначения основных символов блох-схем?
7. Какие правила должны соблюдаться при начертании (выполнении) блок-схем алгоритмов?
8. Чем вызвана необходимость введения алгоритмических языков для записи программ для ЭВМ?
9. В чем заключается способ записи алгоритмов с помощью алгоритмических языков?
10. В чем состоит сущность алгоритмизации вычислительного процесса?
11. Из каких этапов складывается процесс подготовки и решения задачи на ЭВМ и в чем заключается их сущность?
12. Какой вычислительный процесс называется линейным?
13. Какой вычислительный процесс называется разветвляющимся?
14. Какой вычислительный процесс называется циклическим?
15. Что понимается под алгоритмическим языком?
16. Как классифицируются языки программирования?
17. Какие алгоритмические языки программирования вы знаете? Каково назначение этих языков?
18. Какой язык программирования называется машинным?
19. Какой язык программирования называется машинно-ориентированным?
20. Какой язык программирования называется машинно-независимым?
21. Какой язык программирования называется универсальным?
22. Какой язык программирования называется специализированным?
23. Что называется программой?
24. Что такое транслятор и для чего он нужен?
25. Какой должна быть степень детализации алгоритма вычислительного процесса?
26. Откуда произошел термин "алгоритм"?
27. Чем численный алгоритм отличается от логического?
28. Из каких разделов состоит современная теория алгоритмов?
29. Дайте определение алгоритма по Маркову
30. Дайте определение алгоритма по Колмогорову
31. Каким требованиям должен отвечать алгоритм?
32. Что собой представляет машина Поста?
33. Что собой представляет машина Тьюринга?
34. Какие способы записи алгоритмов вам известны?
35. Каковы недостатки словесного способа записи алгоритма?
36. Каковы достоинства и недостатки представления алгоритма в виде блок-схемы?
37. Приведите пример простейшего алгоритма, представленного при помощи диаграммы Нэсси—Шнейдермана.
38. Что такое "псевдокоды"?
39. На какие группы можно подразделить языки программирования высокого уровня?
40. Какие базовые алгоритмические конструкции вам известны?
41. Что такое "линейный алгоритм"?
42. Что такое "разветвляющийся алгоритм"? Чем обуславливается выбор пути при ветвлении?
43. Что такое "циклический алгоритм"? Чем отличается цикл с предусловием от цикла с постусловием?
44. Как Вы понимаете приоритет операций в языке С++?
45. Приоритеты арифметических операций в языке С++.
46. Использование стандартных математических функций.
47. Использование функций scanf() и printf().
48. Структура программы на языке С++.
49. Какие операции называются унарными? Примеры.
50. Какие операции называются бинарными? Примеры.
51. Перечислите названия и знаки арифметических операций в порядке уменьшения их приоритета.
52. Что обозначают операции ++ и --?
53. Порядок выполнения префиксных и постфиксных операций ++ и --.
54. В каком заголовочном файле хранятся прототипы математических функций?
55. Как подключить к программе библиотеку математических функций?
56. Какой алгоритм называется линейным?
57. Какой линейный алгоритм называется вычислительным?
58. Для чего составляется таблица соответствия переменных?
59. Приведите пример графической схемы линейного алгоритма.
60. Что называется тестом?
61. Как и на каком этапе разработки программы составляется тест для линейного вычислительного алгоритма?
62. Как проводится проверка правильности составленной программы?
63. Что называется алгоритмом?
64. Перечислите типы алгоритмов.
65. Данте определение линейного алгоритма.
66. Перечислите способы описания алгоритмов.
67. Что называется схемой алгоритма?
68. Какие блоки используются для описания линейных алгоритмов?
69. Опишите этапы решения задачи на ЭВМ.
70. Дайте понятие контрольного теста.
71. Дайте понятие алгоритмического языка.
72. Что называется транслятором?
73. Что представляет собой программа на алгоритмическом языке?
74. Опишите структуру программы на С++.
75. Объясните выполнение оператора ввода.
76. Что такое бесформатный вывод данных?
77. Какие форматы вывода данных вам известны?
78. Как обеспечить в программе доступность библиотеки математических функций?
79. В какой форме следует задавать аргументы тригонометрических функций?
80. Как на языке С++ записываются функции вычисления десятичного и натурального логарифмов?
81. Как выполняется пошаговая трассировка программы?
82. В чем заключается разница в работе "горячих" клавиш [F7] и [F8]?
83. Как обеспечить останов работающей программы перед выполнением определенного оператора?
84. Как определить значение какой-либо переменной или выражения в точке останова?
85. Как в точке останова изменить существующее значение переменной?
86. Каким образом можно продолжить работу программы после останова?
87. Как после останова работы программы и внесения в нее корректив запустить программу сначала?
88. На какие группы делятся бинарные операции?
89. Приведите список побитовых операций (операторов) языка С++.
90. Поясните работу побитового оператора NOT.
91. Поясните работу побитового оператора AND.
92. Поясните работу побитового оператора XOR.
93. Поясните работу побитового оператора OR
94. Поясните работу операторов побитового сдвига.