- •Ф.Ф. Павлов языки программирования
- •Санкт-Петербург
- •230201 - Информационные системы и технологии
- •Тема 2 посвящена изучению жизненного цикла программы и основным этапам решения задач на эвм.
- •Тема 4 изучает типы пользовательских интерфейсов, классификацию диалогов и основные компоненты графических пользовательских интерфейсов.
- •Тема 8 посвящена структурам данных фиксированного размера (массивы), а также типам данных, определяемых пользователем (структуры, объединения, перечисления).
- •Тема 10 изучает динамические структуры данных: виды и способы реализации списков, динамическое выделение памяти.
- •Тема 12 затрагивает вопросы обработки файлов данных: понятия записи, файла данных и способы доступа, операции и средства обработки файлов, контроль операций обработки файлов.
- •Тема 14 вводит в технологию объектно-ориентированного программирования.
- •Раздел I Принципы программирования на языках высокого уровня
- •Тема 1. Эволюция языков программирования
- •1.1. Неструктурированное, «стихийное» программирование
- •1.2. Процедурное (модульное) программирование
- •1.3. Объектно-ориентированное программирование
- •1.4. Компонентные технологии программирования
- •Тема 2. Жизненный цикл программы и основные
- •2.1. Дружественность, жизненный цикл программы
- •2.2. Постановка задачи и спецификация программы
- •2.3. Проектирование и реализация программы
- •2.4. Способы записи алгоритма
- •2.5. Критерии качества программы
- •3.1. Классификация программных продуктов
- •3.3. Модели программирования в ms-dos и Windows
- •Тема 4. Диалоговые программы
- •4.1. Типы пользовательских интерфейсов
- •4.2. Классификация диалогов и их реализация
- •4.3. Основные компоненты графических
- •Тема 5. Программа на языке высокого уровня
- •5.1. Структура программы и функции
- •5.2. Стандартные типы данных и операции над ними
- •5.3. Адресные типы данных: указатели и ссылки
- •5.4. Стандартные библиотеки языка
- •5.5. Классы памяти
- •Раздел 2 Управляющие структуры и структуры данных
- •Тема 6. Представление управляющих структур
- •6.1. Структура следования
- •6.2. Структуры ветвления
- •6.3. Структуры повторения
- •Int kol, //счетчик введенных оценок
- •Int god; //число лет
- •Тема 7. Адресные типы данных
- •7.1. Указатели
- •7.2. Ссылки
- •Тема 8. Структуры данных фиксированного размера
- •8.1. Массивы
- •8.2. Типы данных, определяемые пользователем
- •Тема 9. Функции (процедуры)
- •9.1. Определение, прототип и вызов функции
- •9.2. Передача параметров
- •9.3. Программирование рекурсивных алгоритмов
- •Тема 10. Динамические структуры данных
- •10.1. Списки: основные виды и способы реализации
- •10.2. Динамическое выделение памяти
- •Раздел 3 Процедурное программирование
- •Тема 11. Ввод/вывод данных
- •11.1. Видеофункции библиотеки conio.H
- •11.2. Функции библиотеки потокового ввода/вывода
- •Тема 12. Обработка файлов данных
- •12.1. Записи и файлы данных
- •12.2. Операции и средства обработки файлов
- •12.3. Контроль операций обработки файлов
- •Тема 13 Технология процедурного программирования
- •13.1. Способы конструирования программ
- •13.2. Проектирование программы: методы декомпозиции и и модульного программирования
- •13.3. Реализация программы: методы структурного
- •Тема 14. Введение в технологию объектно-
- •14.1. Основные понятия объектно-ориентированного
- •14.2. Проектирование программы
- •14.3. Реализация программы
- •Утверждаю
- •Рабочая программа
- •Технология программирования
- •Санкт-Петербург
- •Тема 1. Технология программирования и этапы ее
- •Тема 2. Жизненный цикл программы и основные этапы
Раздел 2 Управляющие структуры и структуры данных
Следующие пять тем посвящены структурам программирования: управляющие структуры программирования (структры следования, ветвления и повторения); адресные типы данных (указатели и ссылки); структуры данных фиксированного размера (массивы и типы данных, определяемые пользователем,); функции и программирование рекурсивных алгоритмов; динамические структуры данных (списки).
Тема 6. Представление управляющих структур
программирования
6.1. Структура следования
Обычно операторы программы обычно выполняются последовательно один за другим. Это называется последовательным выполнением. Когда следующим выполняется не очередной по порядку оператор, а какой-то другой, то это называется передачей управления. Многократное использование в программе передач управления (операторов goto) приводило к большим неприятностям в программировании и сопровождении программ. Одним из требований процедурного программирования являлся отказ от оператора goto. Исследования ведущих специалистов показали, что можно писать программы без goto, а с использованием трех типов управляющих структур: структура следования, структуры ветвления (выбора), структуры повторения.
Структура следования , представленная на рис. 6.1, встроена в язык C++ и означает режим последовательного выполнения операторов программы.
Рис. 6.1. Структура следования.
6.2. Структуры ветвления
Структура ветвления (выбора) служит для программирования разветвляющихся вычислительных процессов и реализована в виде трех структур:
структура с единственным выбором: структура if (если) выполняет некоторое действие, если условие истинно, и игнорирует его, если условие ложно;
синтаксис if (если):
if (expr) //если expr истинно, то выполняется блок {op1;...}
{op1;...} //если ложно, то блок пропускается
структура с двойным выбором: структура if/else (если -иначе) выполняет одно действие, если условие истинно, и второе действие, если условие ложно;
синтаксис if/else (если-иначе):
if (expr) //если expr истинно, то выполняется блок {op1;…}
{op1;...} //если ложно, то выполняется блок {op2;…}
else
{op2;…}
структура с множественным выбором: структура switch(выбор) выполняет выбор действия среди множества действий;
синтаксис switch:
switch(expr) //выполняется тот opi, для которого
{ case const1: op1;…break; //consti==значению expr
case const2: op2;…break; //break – выход из switch
[...] //если соответствие не найдено,
[default: opN;] //то выполняется оператор opN
if структура if/else структура switch структура
(единственный (двойной выбор) (множественный выбор)
выбор)
Рис. 6.2. Структуры ветвления (выбора)
Пример 1 «Структура ветвления с двойным
выбором if/else»
Условие задачи: имеются три переменных (a, b, c) с различными значениями; вывести числа в порядке убывания.
Для создания проекта консольного приложения необходимо выполнить следующие этапы:
Запустить Visual Studio .NET 2003. Появится стартовая страница Start Page. Проверить вкладку Projects.
Щелкнуть на кнопке New Project или выбрать команду File->New->Project. Появится диалоговое окно New Project.
Выбрать в списке Project Types папку Visual C++ Project Win32, а в списке Templates – Win32 Console Projects. Ввести имя проекта TPlab1_1 и проверить в поле Location имя папки для хранения проекта (TPlab1_1).
Щелкнуть на кнопке OK. Появляется диалоговое окно Win32 Application Wizard TPlab1_1. На вкладке Application Setting (параметры приложения) выбрать Console Application.
Щелкнуть на кнопке Finish. Информация о проекте выводится в окне Solution Explorer (левое окно). Создается исходный файл TPlab1_1.cpp, который будет содержать всего одну пустую функцию main():
int t_main(int args, _TCHAR* argv[])
{return 0;}.
Проект должен содержать файл заголовков TPlab1_1.h и файл кодов TPlab1_1.cpp. Для создания файла TPlab1_1.h выполнить следующие этапы:
Выбрать команду File->Add New Item. Появится диалоговое окно Add New Item lab1. В списке Categorie должно быть Visual C++.
Выбрать в списке Templates тип файла заголовков Header File (.h), ввести имя файла TPlab1_1.h и щелкнуть на кнопке Open. Появится пустое поле для ввода текста файла TPlab1_1.h.
Ввести текст файла Tlab1_1.h и сохранить его:
//файл заголовков TPlab1_1.h
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
Добавить в файл кодов TPlab1_1.cpp подключение файла заголовков и текст функции main():
//файл кодов TPlab1_1.cpp
#include "stdafx.h"
#include "TPlab1_1.h"
int _tmain(int argc, _TCHAR* argv[])
{
int a,b,c;
cout<<"Vvedite a, b, c: ";
cin>>a>>b>>c;
if(a>b)
if(b>c) cout<<a<<b<<c<<'\n'; //ввод:321, вывод:321
else if(a>c) cout<<a<<c<<b<<'\n'; //ввод:312, вывод:321
else cout<<c<<a<<b<<'\n'; //ввод:231, вывод:321
else if(a>c) cout<<b<<a<<c<<'\n'; //ввод:132, вывод:321
else if(b>c) cout<<b<<c<<a<<'\n';//ввод:213, вывод:321
else cout<<c<<b<<a<<'\n'; //ввод:123, вывод:321
return 0;
}
Выбрать команду Build->Build TPlab1_1. Выполняется компиляция и компоновка программы. При наличии ошибок выполнить редактирование файлов и снова запустить на компиляцию.
Выбрать команду Debug ® Start Without Debugging - запуск на выполнении программы. На экране появляется окно и выводятся результаты программы. Строка Press Any Key to Continue позволяет увидеть результаты программы.
Пример 2 «Структура ветвления с множественным
выбором switch»
Условие задачи: ввести оценки студентов и подсчитать число студентов с оценками 2, 3, 4, 5.
Создать проект консольного приложения и ввести имя проекта TPlab1_2.
Создается исходный файл TPlab1_2.cpp, который будет содержать всего одну пустую функцию main():
int t_main(int args, _TCHAR* argv[])
{return 0;}.
Проект должен содержать файл заголовков TPlab1_2.h и файл кодов TPlab1_2.cpp.
Создать файл TPlab1_2.h, ввести текст файла и сохранить его:
//файл заголовков TPlab1_2.h
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
Добавить в файл кодов TPlab1_2.cpp подключение файла заголовков и текст функции main():
//файл кодов TPlab1_2.cpp
#include "stdafx.h"
#include "TPlab1_2.h"
int _tmain(int argc, _TCHAR* argv[])
{
//блок объявлений, инициализации и ввода
char ocenka; //оценка
int kol2=0, //число оценок 2
kol3=0, //число оценок 3
kol4=0, //число оценок 4
kol5=0; //число оценок 5
cout<<"Vvedite ocenky, "<<endl
<<"ili konec vvoda '0' "<<endl;
//блок обработки
cin>>ocenka;
while(ocenka!='0')
{
switch(ocenka)
{
case '2':
kol2++; break;
case '3':
kol3++; break;
case '4':
kol4++; break;
case '5':
kol5++; break;
case ' ':
break;
default:
cout<<"Nepravilno, "
<<"vvedite snova"<<endl;
break;
}
cin>>ocenka;
}
//блок вывода
cout<<"\nKol-vo ocenok: "
<<"\n2: "<<kol2
<<"\n3: "<<kol3
<<"\n4: "<<kol4
<<"\n5: "<<kol5<<endl;
return 0;
}