Индивидуальные варианты заданий



Министерство образования и науки Республики Казахстан

 

РГП «Карагандинский государственный индустриальный университет»

 

Кафедра «Энергетика, автоматизация и вычислительная техника»

 

 

Утверждаю

Проректор по учебной работе

_____________ Сивякова Г.А.

«____» ______________ 2018 г.

 

 

МЕТОДИЧЕСКИЕ УКАЗАНИЯ
ДЛЯ ВЫПОЛНЕНИЯ ПРАКТИЧЕСКИХ РАБОТ

по дисциплине «Алгоритмизация и программирование»

для студентов специальностей

5B070400 «Вычислительная техника и программное обеспечение»

5В070200 «Автоматизация и управление»

для всех форм обучения

 

Г. Темиртау, 2018

 

«СОГЛАСОВАНО»

 


Декан ФЭТиСУ

___________Жабалова Г.Г.

«___»___________ 2018г.

 

 

СОСТАВИЛ: Ст. преподаватель Чванова А.О.   РАССМОТРЕНО на заседании кафедры «ЭАиВТ» Протокол №_ «____»______________ 2018г. Зав.кафедрой ________Ющенко О.А.

 

 

 

СОДЕРЖАНИЕ

 

 


Практическая работа №1. Основы алгоритмизации и составление блок-схем.. 4

Практическая работа №2. Основы языка С++ и введение в базовые математические операции. 11

Практическая работа №3. Условный оператор и циклы.. 19

Практическая работа №4. Работа с массивами. 27

Практическая работа №5. Работа со строками. 33

Практическая работа №6. Функции программиста и подключение сторонних библиотек. Работа с модулями. 38

Практическая работа №7.Структуры в С++. Словари и списки. 47

Практическая работа №8.Множества. 64

Практическая работа №9. Работа с файлами. 66

Практическая работа №10. Введение в объектно-ориентированное программирование. 73

Практическая работа №11. Основы отладки программ и перехват исключений. 79

 


Практическая работа №1. Основы алгоритмизации и составление блок-схем

Цель работы: получение практических навыков разработки блок-схем алгоритмов.

Задачи:

1. Изучить теоретический материал

2. Выполнить задание по варианту.

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

4. Оформить отчет.

 

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

Решение задач на компьютере основано на понятии алгоритма. Алгоритм – это точное предписание, определяющее вычислительный процесс, ведущий от варьируемых начальных данных к исходному результату.

Алгоритм означает точное описание некоторого процесса, инструкцию по его выполнению. Разработка алгоритма является сложным и трудоемким процессом. Алгоритмизация – это техника разработки (составления) алгоритма для решения задач на ЭВМ.

Алгоритм обладает следующими свойствами:

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

2. Определенность. Каждое правило алгоритма должно быть четким, однозначным.

3. Результативность (конечность). Алгоритм должен приводить к решению за конечное число шагов.

4. Массовость. Алгоритм решения задачи разрабатывается в общем виде, т.е. он должен быть применим для некоторого класса задач, различающихся лишь исходными данными.

5. Правильность (целенаправленность). Алгоритм правильный, если его выполнение дает правильные результаты решения поставленной задачи.

Для записи алгоритма решения задачи применяются следующие изобразительные способы их представления:

• Словесно- формульное описание

• Блок-схема (схема графических символов)

• Алгоритмические языки

• Операторные схемы

• Псевдокод

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

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

 

Название Символ (рисунок) Выполняемая функция (пояснение)
1. Блок вычислений Выполняет вычислительное действие или группу действий
2. Логический блок Выбор направления выполнения алгоритма в зависимости от условия

3. Блоки ввода/вывода

Ввод или вывод данных вне зависимости от физического носителя
Вывод данных на печатающее устройство
4. Начало/конец (вход/выход) Начало или конец программы, вход или выход в подпрограмму
5. Предопределенный процесс Вычисления по стандартной или пользовательской подпрограмме
6. Блок модификации Выполнение действий, изменяющих пункты алгоритма
7. Соединитель Указание связи между прерванными линиями в пределах одной страницы
8. Межстраничный соединитель Указание связи между частями схемы, расположенной на разных страницах

 

Правила построения блок-схем:

1. Блок-схема выстраивается в одном направлении либо сверху вниз, либо слева направо

2. Все повороты соединительных линий выполняются под углом 90 градусов

Использование блок-схем дает возможность:

• наглядно отобразить базовые конструкции алгоритма;

• сосредоточить внимание на структуре алгоритма, а не на синтаксисе языка;

• анализировать логическую структуру алгоритма;

• преобразовывать алгоритм методом укрупнения (сведения к единому блоку) или детализации – разбиения на ряд блоков;

• использовать принцип блочности при коллективном решении сложной задачи;

• осуществить быструю проверку разработанного алго-ритма (на уровне идеи);

• разобрать большее число учебных задач.

Составление блок-схемы алгоритма является важным и в большинстве случаев необходимым этапом решения сложной и большой задачи на ЭВМ, значительно облегчающим процесс составления программ.

Каждый этап вычислительного процесса представляется геометрическими фигурами (блоками). Они делятся на арифметические или вычислительные (прямоугольник), логические (ромб) и блоки ввода-вывода данных (параллелограмм).

Алгоритмические языки - это специальное средство, предназначенное для записи алгоритмов в аналитическом виде. Алгоритмические языки близки к математическим выражениям и к естественным языкам. Каждый алгоритмический язык имеет свой словарь. Алгоритм, записанный на алгоритмическом языке, выполняется по строгим правилам этого конкретного языка.

Операторные схемы алгоритмов. Суть этого способа описания алгоритма заключается в том, что каждый оператор обозначается буквой (например, А – арифметический оператор, Р – логический оператор и т.д.).

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

Псевдокод – система команд абстрактной машины. Этот способ записи алгоритма с помощью операторов близких к алгоритмическим языкам.

Для записи алгоритма существует общая методика:

• Каждый алгоритм должен иметь имя, которое раскрывает его смысл.

• Необходимо обозначить начало и конец алгоритма.

• Описать входные и выходные данные.

• Указать команды, которые позволяют выполнять определенные действия над выделенными данными

 

Общий вид алгоритма

Алгоритм: Название алгоритма

Описание данных

Начало

Команды

Конец

Типы алгоритмических процессов

По структуре выполнения алгоритмы и программы делятся на три вида:

 Линейные

 Ветвящиеся

 Циклические

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

Присваивание переменной какого-либо значения или при-сваивание одной переменной значения другой переменной явля-ется наиболее часто выполняемым действием в программе, на-писанной на любом языке программирования. В языке програм-мирования присваивание является операцией и обозначается как «:=». Это означает, что при выполнении этой операции проис-ходит не только присваивание значения определенной перемен-ной, но и возвращается некоторое значение.

 

Рис. 1. Линейная структура

 

Алгоритмы разветвляющейся структуры

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

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

Циклические вычислительные процессы

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

Существуют две схемы циклических вычислительных процессов.

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

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

Существуют циклы с известным числом повторений и итерационные циклы. При итерационном цикле выход из тела цикла, как правило, происходит при достижении заданной точности вычисления.

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

 

 

 

Итерационным называется цикл, число повторений кото-рого не задается, а определяется в ходе выполнения цикла. В этом случае одно повторение цикла называется итерацией.

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

В качестве примера использования рекурсии рассмотрим задачу поиска файлов. Пусть нужно получить список всех файлов, например, с расширением bmp, которые находятся в указанном пользователем каталоге и во всех подкаталогах этого каталога.

Словесно алгоритм обработки каталога может быть представлен так:

1. Вывести список всех файлов, удовлетворяющих критерию запроса.

2. Если в каталоге есть подкаталоги, то обработать каждый из этих каталогов.

Приведенный алгоритм, блок-схема которого представлена на рис. 4, является рекурсивным. Для того чтобы обработать подкаталог, процедура обработки текущего каталога должна вызвать сама себя..

 

 

Рассмотрим пример решения задачи на анализ работы алгоритма.

Пример 1. Дан алгоритм в виде блок-схемы. Найти А, В, С, D, если изначально:

а) А=0, В=0, C=5, D=10;

Результат работы алгоритма определяется с помощью трассировочных таблиц

Индивидуальные варианты заданий

Составить трассировочную таблицу для примера 1, если исходные данные:

 

Вариант Задача
1 А=0, В=0, C=5, D=10
2 А=5, В=3, C=1, D=10;
3 А=3, В=0, C=8, D=0;
4 А=0, В=3, C=10, D=0;
5 А=2, В=8, C=9, D=7;
6 А=4, В=0, C=3, D=7;
7 А=0, В=10, C=15, D=14;
8 А=10, В=4, C=5, D=7;
9 А=0, В=0, C=7, D=5;
10 А=3, В=0, C=5, D=10;
11 А=0, В=0, C=10, D=7;
12 А=7, В=5, C=6, D=10;
13 А=0, В=10, C=5, D=10;
14 А=10, В=4, C=7, D=7;
15 А=6, В=8, C=5, D=10;

 

2. Составить блок-схемы решения задачи

Вариант Задача
1 · По координатам вершин вычислить периметр и площадь треугольника · Вычислить значение функции · Найти сумму целых четных чисел, которые меньше введенного числа X.
2 · Дана длина ребра куба. Найти объем куба и площадь его боковой поверхности. · Вычислить значение функции · Найти произведение целых четных чисел, которые находятся в диапазоне от а до b (a,b вводятся пользователем).
3 · Найти произведение цифр заданного четырехзначного числа · Вычислить значение функции · Вводится произвольная последовательность чисел, заканчивающаяся нулём. Определить сумму введённых чисел.
4 · Вычислить длину окружности, площадь круга и объем шара заданного радиуса · Вычислить значение функции · Вывести на экран значения функции y=sinX на отрезке от 0 до 1 с шагом h.
5 · Даны 3 вещественных числа. Определить, образуют ли они возрастающую последовательность · Вычислить значение функции · Заменить в строке букву 'о' на 'а'.
6 · Определить, равна ли сумма цифр введенного числа N заданному числу M   · Вычислить значение функции · Подсчитать во введённой строке количество букв 'a'.
7 · Определить, равна ли сумма двух первых цифр заданного четырехзначного числа сумме двух его последних цифр · Вычислить значение функции · Пользователь последовательно вводит числа. Определить, сколько среди них нечетных.
8 · Дано натуральное число n, выяснить входит ли цифра 3 в запись этого числа и поменять порядок цифр числа n на обратный · Вычислить значение функции · Найти сумму целых положительных чисел, больших 20, меньших 100 и кратных 3.
9 · Для полого цилиндра высотой h, внешним радиусом r 1 и внутренним радиусом r 2 вычислить объем по формуле: . · Вычислить значение функции · Определить минимальное из введенных чисел.
10 · Напишите алгоритм вычисления размера оплаты за потребленную электроэнергию, если известны показания счетчика на начало и конец периода оплаты и тариф. · Вычислить значение функции · Пользователь вводит числа. Определить, есть ли среди них число k.
11 · Для цилиндра радиусом r и высотой h напишите программу вычисления площади и объема по формулам: ; . · Вычислить значение функции · Пользователь последовательно вводит числа. Определить, сколько среди них четных.
12 · Известны координаты вершин треугольника (x 1 , y 1), (x 2 , y 2), (x 3 , y 3). Напишите программу вычисления длин сторон треугольника и его площади. · Вычислить значение функции · Вывести на экран значения функции y=cosX на отрезке от 0 до 1 с шагом h.
13 · В равнобедренном треугольнике известна высота h, опущенная на гипотенузу. Найти стороны треугольника. · Вычислить значение функции · Подсчитать во введённой строке количество букв 'a' и 'o'.
14 · Напишите алгоритм вычисления стоимости покупки, состоящей из нескольких карандашей, линеек и тетрадей. Их количество и цену задать вводом. Ответ вывести в виде: Сумма к оплате: … руб … коп. · Вычислить значение функции · Определить сумму квадратных корней натуральных чисел от 10 до 40
15 · Для конуса радиусом r и высотой h написать алгоритм вычисления объема по формуле: · Вычислить значение функции · Вводится произвольная последовательность чисел, заканчивающаяся нулём. Определить произведение введённых чисел.

 

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

1. Что такое алгоритм?

2. Основные свойства алгоритма?

3. Какие способы записи алгоритмов существуют?

4. Основные типы структур программы.

5. Какие бывают циклы?

6. Допустимо ли использование вложенных условий? Приведите пример.

7. Основные требования к алгоритму.

8. Для чего необходимо использовать блок-схемы?

 

Содержание отчета

1. Титульный лист

2. Цели, задачи работы

3. Индивидуальное задание

4. Блок-схема

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

 

Практическая работа №2. Основы языка С++ и введение в базовые математические операции

Цель работы: получение практических навыков написания программ, основанных на линейных алгоритмах на языке С++.

 

Задачи:

1. Изучить теоретический материал

2. Написать программу для решения индивидуального задания.

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

4. Оформить отчет.

 

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

C++ (произносится «си плас плас», допустимо также русскоязычное произношение «си плюс плюс») — компилируемый статически типизированный язык программирования общего назначения. Поддерживая разные парадигмы программирования, сочетает свойства как высокоуровневых, так и низкоуровневых языков. В сравнении с его предшественником — языком C, — наибольшее внимание уделено поддержке объектно-ориентированного и обобщённого программирования. Название «C++» происходит от названия языка C, в котором унарный оператор ++ обозначает инкремент переменной.

Являясь одним из самых популярных языков программирования, C++ широко используется для разработки программного обеспечения. Область его применения включает создание операционных систем, разнообразных прикладных программ, драйверов устройств, приложений для встраиваемых систем, высокопроизводительных серверов, а также развлекательных приложений (например, видеоигры). Существует несколько реализаций языка C++ — как бесплатных, так и коммерческих. Их производят Проект GNU, Microsoft, Intel и Embarcadero (Borland). C++ оказал огромное влияние на другие языки программирования, в первую очередь на Java и C#.

В состав языка С++ входят:

· Алфавит языка, или его символы – это основные неделимые знаки, с помощью которых пишутся все тексты на языке;

· Лексема, или элементарная конструкция, - минимальная единица языка, имеющая самостоятельный смысл;

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

· Оператор задает законченное описание некоторого действия.

Алфавит языка

Алфавит С++ включает:

· прописные и строчные латинские буквы и знак подчеркивания;

· арабские цифры от 0 до 9;

· специальные знаки

“ { } , | [ ] ( ) + - / % * . \

‘ : ? < = > ! & # ~ ; ^

· пробельные символы: пробел, символы табуляции, символы перехода на новую строку.

Из символов алфавита формируются лексемы языка:

· идентификаторы;

· ключевые (зарезервированные слова);

· знаки операций;

· константы;

· разделители (скобки, точка, запятая, пробельные символы).

Границы лексем определяются другими лексемами, такими, как разделители или знаки операций.

Идентификаторы

Идентификатор – это имя программного объекта. В идентификаторе могут использоваться латинские буквы, цифры и знак подчеркивания. Прописные и строчные буквы различаются, например, sysop, SySoP и SYSOP – три различных имени. Первым символом идентификатора может быть буква или знак подчеркивания, но не цифра. Пробелы внутри имен не допускаются.

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

· идентификатор не должен совпадать с ключевыми словами и именами используемых стандартных объектов языка;

· не рекомендуется начинать идентификаторы с символа подчеркивания;

· на идентификаторы, используемые для определения внешних переменных, налагаются ограничения компоновщика.

Ключевые слова

Ключевые слова – это зарезервированные идентификаторы, которые имеют специальное значение для компилятора. Их можно использовать только в том смысле, в котором они определены. Пример: asm, auto, bool, break, case, catch, char, и т.п.


Дата добавления: 2020-04-25; просмотров: 155; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!