poi_labs
.pdfМинистерство образования и науки Российской федерации
Государственное образовательное учреждение высшего профессионального образования«Алтайский государственный технический университет им. И. И. Ползунова»
А. И. Потупчик
Языки и системы программирования
Лабораторный практикум
Барнаул 2011
УДК 004.43
Потупчик, А. И. Языки и системы программирования. Лабораторный практикум: Учебное пособие / А. И. Потупчик; АлтГТУ им. И. И. Ползунова.
– Барнаул, Изд-во АлтГТУ, 2011. - 71 c.
Практикум состоит из девяти лабораторных работ по дисциплине «Языки и системы программирования». Каждая лабораторная работа содержит ее цель, порядок выполнения, индивидуальные задания по вариантам и контрольные вопросы. Приведен общий порядок выполнения и защиты лабораторных работ и
Учебное пособие предназначено для студентов специальности 030500.06 - Профессиональное обучение (информатика, вычислительная техника и компьютерные технологии)
Рассмотрены и одобрены на заседании кафедры «Прикладная математика» Протокол № 5 от 07.12.2010
Рецензент: Е. В. Егорова – доцент кафедры «Прикладная математика» АлтГТУ.
2
|
Содержание |
|
|
|
4 |
Порядок выполнения и защиты лабораторных работ…………………………... |
|
|
Лабораторная работа № 1. Линейные программы................................................. |
7 |
|
Лабораторная работа № 2. Разветвляющиеся программы.…………………….. |
16 |
|
Лабораторная работа № 3. Циклические программы............................................ |
28 |
|
Лабораторная работа № 4. Одномерные массивы................................................. |
35 |
|
Лабораторная работа № 5. Двумерные массивы.................................................... |
40 |
|
Лабораторная работа № 6. |
Работа с функциями.................................................... |
45 |
Лабораторная работа № 7. |
Работа со строками…………………………………. |
53 |
Лабораторная работа № 8. |
Работа со структурами……………………………… 59 |
|
Лабораторная работа № 9. |
Работа с файлами…………………………………… |
65 |
Список использованных источников…………………………………………….. |
70 |
|
Приложение А Образец оформления титульного листа……………….……… |
71 |
3
Порядок выполнения и защиты лабораторных работ
Цели лабораторных работ:
формирование практических навыков программирования и работы в современных вычислительных системах;
овладение одним из алгоритмических языков высокого уровня (в данном лабораторном практикуме – языком Си /Си++).
Основная концепция, заложенная в лабораторных работах, – это
движение от простейших алгоритмов, управляющих структур, типов данных к более сложным алгоритмам, управляющим структурам, типам данных.
Методические указания к лабораторным работам являются ориентиром в самостоятельной подготовке студентов по теме работы и содержат требования, рекомендации, контрольные вопросы, задания по теме работы.
Выполнение лабораторной работы включает следующие этапы. 1 Предварительный:
знакомство с темой, целью и задачами лабораторной работы;
изучение теоретических сведений и примеров программ, необходимых для выполнения лабораторной работы;
знакомство с заданием к лабораторной работе, обдумывание алгоритма и программной реализации задачи индивидуального варианта.
2. Проектирование и реализация программы:
разработка и описание алгоритма поставленной задачи;
написание программы в соответствии с требованиями к лабораторной работе;
трансляция и отладка программы на тестовых примерах (набор тестов
подбирает студент).
3. Защита лабораторной работы:
4
подготовка отчета по работе;
демонстрация работы программы на тестовых примерах;
ответ на контрольные вопросы.
Отчет по лабораторной работе включает следующие разделы:
1). Титульный лист
2). Условие задачи
3). Анализ задачи
4). Алгоритм решения задачи
5). Текст программы
6). Набор тестов
7). Результаты работы программы Образец оформления титульного листа приведен в Приложении А.
Анализ задачи необходим для достижения следующих целей:
установить, что является исходными данными и результатами решения задачи;
выделить основные отношения между входными и выходными данными
(если возможно описать их на языке математики);
выделить основные подзадачи, которые надо решить, чтобы достичь
результата.
На основании этого определяется подход к разработке алгоритма решения задачи (т.е. метод ее решения), который позволяет в самом общем виде сформулировать, что должен делать алгоритм, чтобы преобразовать исходные данные в результат.
Как правило, в условии задачи нет каких-либо ограничений на размер и тип исходных данных, поэтому необходимо определить класс входных данных, которые должны обрабатываться алгоритмом. Например,
входными данными является матрица. В этом случае необходимо задать максимально допустимое число строк и максимально допустимое число столбцов. При этом студент должен не сужать, а максимально расширять
5
класс входных данных, чтобы разработать наиболее универсальную программу.
Алгоритм решения задачи – это не программа ее решения, а способ
дать человеку (а не машине) представление о структуре алгоритма, о
смысле его шагов и их логической взаимосвязи. Поэтому шаги алгоритма
должны описываться в терминах тех объектов и отношений между ними, о
которых идет речь в условии задачи (это, конечно, не исключает
использования математической и другой условной символики).
Структура алгоритма станет более ясной, если ее описывать в наглядной и достаточно формализованной (напоминающей конструкции языка программирования) форме. Поэтому требуемой формой описания алгоритма в данном лабораторном практикуме является либо графическое представление алгоритма на языке блок-схем, либо на специальном языке описания алгоритмов, например псевдокоде.
6
Лабораторная работа №1
Линейные программы
Цель работы
Получить навыки работы в среде программирования. Изучить основные типы данных, структуру программы, стандартные математические функции, линейные алгоритмы.
Задачи занятия:
Освоить основные команды интегрированной среды разработки
(запись/чтение программы с диска, компиляция, выполнение программы, отладка);
Изучить общую структуру программы на языке C++;
Разработать линейные алгоритмы с использованием переменных вещественного и целого типа, а также стандартных математических функций по индивидуальному варианту;
Запрограммировать разработанные алгоритмы и отладить полученные программы,;
Составить и защитить отчет.
Задания
1. Запустить интегрированную среду и выполнить приведенный пример линейной программы c использованием переменной вещественного типа.
#include <iostream.h> #include<conio.h> #include<math.h>
int main()
{
float x;
cout << "Введите х"; cin >>x;
7
cout << sin(x); getch();
return 0;
}
Данная программа позволяет вычислить значение функции sin(x) для произвольного значения аргумента x, который вводится с клавиатуры с помощью cin, для вывода результата используется cout. Для задержки результата на экране можно использовать последнюю строчку программы getch();.Для подключения библиотеки математических функций используется директива препроцессора #include<math.h.
2. Выполните задания на вычисление значения выражений с использованием вещественных переменных по указанному преподавателем варианту.
Варианты.
№1 Дана сторона квадрата a. Найти его периметр P = 4·a.
№2 Дана сторона квадрата a. Найти его площадь S = a2.
№3 Даны стороны прямоугольника a и b. Найти его площадь S = a·b и периметр P = 2·(a + b).
№4 Дан диаметр окружности d. Найти ее длину L = π·d.
№5 Дана длина ребра куба a. Найти объем куба V = a3 и площадь его поверхности S = 6·a2.
№6 Даны длины ребер a, b, c прямоугольного параллелепипеда. Найти его объем V = a·b·c и площадь поверхности S = 2·(a·b + b·c + a·c).
№7. Найти длину окружности L и площадь круга S заданного радиуса R:
L = 2·π·R, S = π·R2.
№8. Даны два числа a и b. Найти их среднее арифметическое: (a + b)/2.
№9 Даны два неотрицательных числа a и b. Найти их среднее геометрическое, то есть квадратный корень из их произведения: a*b.
№10 Даны два ненулевых числа. Найти сумму, разность, произведение и частное их квадратов.
8
№11 Даны два ненулевых числа. Найти сумму, разность, произведение и частное их модулей.
№12 Даны катеты прямоугольного треугольника a и b. Найти его гипотенузу c и периметр P: c = a2+b2, P = a + b + c.
№13 Даны два круга с общим центром и радиусами R1 и R2 (R1 > R2). Найти площади этих кругов S1 и S2, а также площадь S3 кольца, внешний радиус которого равен R1, а внутренний радиус равен R2:
S1 = π·(R1)2, S2 = π·(R2)2, S3 = S1 – S2.
№14 Дана длина L окружности. Найти ее радиус R и площадь S круга, ограниченного этой окружностью, учитывая, что L = 2·π·R, S = π·R2.
№15 Дана площадь S круга. Найти его диаметр D и длину L окружности, ограничивающей этот круг, учитывая, что L = π·D, S = π·D2/4.
№16 Найти расстояние между двумя точками с заданными координатами x1 и x2 на числовой оси: |x2 – x1|.
№17 Даны три точки A, B, C на числовой оси. Найти длины отрезков AC и BC и их сумму.
№18 Даны три точки A, B, C на числовой оси. Точка C расположена между точками A и B. Найти произведение длин отрезков AC и BC.
№19 Даны координаты двух противоположных вершин прямоугольника: (x1, y1), (x2, y2). Стороны прямоугольника параллельны осям координат. Найти периметр и площадь данного прямоугольника.
№20 Найти расстояние между двумя точками с заданными координатами (x1, y1) и (x2, y2) на плоскости.
№21. Даны координаты трех вершин треугольника: (x1, y1), (x2, y2), (x3, y3). Найти его периметр и площадь, используя формулу для расстояния между двумя точками на плоскости. Для нахождения площади треугольника со
сторонами a, b, c использовать формулу Герона: S= где p = (a + b + c)/2 — полупериметр.
p* (p - a)* (p - b)* (p - c) ,
9
№22 Поменять местами содержимое переменных A и B и вывести новые значения A и B.
№23 Даны переменные A,B,C. Изменить их значения, переместив содержимое A в B, B в C, C в A, и вывести новые значения переменных.
№24 Даны переменные A, B, C. Изменить их значения, переместив содержимое A в C, C — в B, B — в A, и вывести новые значения переменных
A, B, C.
№25 Найти значение функции y = 3·x6 – 6·x2 – 7 при данном значении x.
№26 Найти значение функции y = 4·(x–3)6–7·(x–3)3+2 при данном значении x. №27 Дано число A. Вычислить A8, используя вспомогательную переменную и три операции умножения. Для этого последовательно находить A2, A4, A8.
Вывести все найденные степени числа A.
№28 Дано число A. Вычислить A15, используя две вспомогательные переменные и пять операций умножения. Для этого последовательно находить A2, A3, A5, A10, A15. Вывести все найденные степени числа A.
№29 Дано значение угла α в градусах (0 < α < 360). Определить значение этого же угла в радианах, учитывая, что 180° = π радианов.
№30 Дано значение угла α в радианах (0 < α < 2·π). Определить значение этого же угла в градусах, учитывая, что 180° = π радианов.
3. Выполнить приведенный пример линейной программы c использованием переменной целого типа.
Дано трехзначное число. Найти произведение его цифр.
#include <iostream.h> #include<conio.h> #include<math.h>
int main()
{
int x, x1, x2, x3, p; cout << "Введите х"; cin>>x;
10