Курс Программирование II IAG0582 (использование языка «С» с реализацией алгоритмов) модуль I Преподаватели: Владимир Вийес viis@ati.ttu.ee, Маргит Аарна.

Презентация:



Advertisements
Похожие презентации
ПРОЦЕДУРЫ И ФУНКЦИИ CPascal Подпрограмма – группа операторов реализующая законченный алгоритм и оформленная как самостоятельная синтаксическая единица.
Advertisements

Лабораторная работа 4. Подпрограммы. Задание на лабораторную работу Написать программу, реализующую хранение информации, указанной в вариантах индивидуальных.
МАССИВЫ 4 Определение 4 Описание 4 Обращение к элементам массива 4 Связь массивов с указателями 4 Примеры программ.
Лекция 1 Классификация С++. Парадигмы программирования Императивная Функциональная Декларативная (логическая) Инструкция 1 Инструкция 2 Инструкция 3 Инструкция.
Практическое занятие 6. Функции. Большинство языков программирования используют понятия функции и процедуры. C++ формально не поддерживает понятие процедуры,
Функции Функция – именованная последовательность описаний и операторов, выполняющая некоторое действие. Может иметь параметры и возвращать значение. Функция.
Д.з Язык С++ - занятие 31. Задача 1: 1/1 + 1/3 + 1/5 … #include using namespace std; int main() { int n; cin >> n; double sum = 0;// Сумма for.
Разработчики: Деникин А.В., Деникина Н.В.1 МАССИВЫ В C#. Содержание Принципы работы с массивами Типовые алгоритмы обработки массивов Сортировка массивов.
Министерство образования Республики Беларусь Белорусский государственный университет Управляющие структуры языков программирования.
Лекция 2Лекция 2Структура программы Директивы препроцессора main () { Описания переменных Операторы }
Языки и методы программирования Преподаватель – доцент каф. ИТиМПИ Кузнецова Е.М. Лекция 7.
Лекция 9 Функции. Массивы-параметры функции Передача массива в функцию Пример: void array_enter(int a[], int size) { int i; for (i = 0; i < size; i++)
Часть 1: «Основы программирования». Содержание Основные понятия. Структура программы. Ввод-вывод Программирование циклов. Операторы цикла while, for и.
«Обработка массивов данных» Delphi. Тема 4:4: «Обработка массивов данных» План темы: l1l1. Понятие массива данных. l2l2. Описание массива в программе.
Преобразования типов В языке C/C++ имеется несколько операций преобразования типов. Они используются в случае, если переменная одного типа должна рассматриваться.
УКАЗАТЕЛИ. Переменная - это именованная область памяти с заданным типом. [=значение]; int a; //Переменная типа integer с именем a int b=2;// Переменная.
Презентация на тему: «Программирование Разветвляющихся структур». Составила: учитель информатики Чура Н.А. 1.
Этапы решения задач на компьютере 1. Постановка задачи. 2. Построение математической модели. 3. Составление алгоритма. 4. Запись алгоритма на языке программирования(кодирование)
Вводный курс в С++ Занятие 1 Олег Власенко Заместитель директора ООО СимбирСофт Старший.
Лекция 4 Программирование на Паскале. Элементы языка Турбо Паскаль 7.0. Типы данных. Управляющие конструкции.
Транксрипт:

Курс Программирование II IAG0582 (использование языка «С» с реализацией алгоритмов) модуль I Преподаватели: Владимир Вийес Маргит Аарна Вииви Йокк Хеймар Веске Таллиннский Технический Университет 2012

Цели предмета Развитие логического и творческого мышления путем решения оригинальных задач Научиться реализовывать алгоритмы в различных средах, используя динамическое распределение памяти Использовать файлы при обработке данных и записи для баз данных Понять основы Объектно Ориентированного Программирования ООП

Краткое описание курса Структурированные типы данных (Обзор) Декларация, обработка Файлы. Типовые файлы, текстовые файлы, последовательные и возвратные. Буфер. Открытие файлов для (чтения, записи, изменения) и закрытие файлов. Данные. Использование записей : ввод/вывод из файла в файл. Выстраивание элементов в файле, реакция на определенные действия. Алгоритм выстраивания записей в файле. Индексирование. Сортировка. Динамическое распределение памяти. Рекурсия Обмен данными с помощью рекурсии. Прямая и косвенная +/- использования рекурсии Ссылки Распределение и освобождение памяти. Работа программы. Стек Структура последовательности и стека Алгоритм предоставления динамической структуры Объектно ориентированное решение Объектно ориентированные методы в построении программы (класс, метод, объект) Отладка программы Сканирование- контрольные пункты- отладка- построение – документация- составление проекта

Структура курса Курс делится на 4 модуля/части: 1) Подготовка: ссылки, функции 2) Структурированные типы данных: файлы, записи 3) Использование динамической памяти: структуры 4) ООП: C++, Java Каждый модуль имеет: Учебный материал (также видео лекцию). Пример задания с объяснением его реализации. Индивидуальные задания (с тестовыми данными и ответами)

Критерии оценивания Домашнее задание = 30 пунктов Письменный экзамен (2,5 ч ) + устная часть = 70 пунктов Допуск до экзамена 2+1 контрольные работы = 200 пунктов Если у вас набралось в сумме 140 пунктов, то можно получить освобождение от письменной части на экзамене.

Предварительные знания Курс ПрограммированиеII предполагает: Что студент имеет представление о составлении алгоритмов Что студент знает основу языка С (DevC/C++) В системе Moodle указан предшествующий курс ПрограммированиеI, который дает базовые знания в области программирования Последние темы прошлого предмета мы повторим в рамках курсаПрограммированиеII Ссылки (повторение 1) Составление и использование подпрограмм (повторение 2)

Повторение 1 ССЫЛКИ

printf printf( %lf, x); printf(%lf, &pi); Одинаково??? Как получить их адреса???

Ссылка #include int main(void) { double pi=3.14; // переменная и ссылка одного типа double *x=&pi; printf( %If, *x); return 0; } Для вывода значения используется не имя переменной, а ссылка на адрес, где находится pi *x – ссылка на адрес ячейки памяти

Ссылка на ссылку #include int main (void) { int value= 144; int *x=&something; int **link_link=&x; printf(variable 2l principle %d %d, pi, *x); printf(address %d and is different to %d, x, *link_link); printf(these addresses are %d, which are the same as %d, &x, &link_link); return 0; } Попробуйте реализовать этот код!

Практическое задание по использованию ссылок 1) Программа запрашивает у пользователя целочисленное значение переменной и выводит на экран. 2) Напишите ссылку для адреса этой переменной (*viit) 3) Выведите на экран значение переменной и адрес, используя ссылку 4) Выведите на экран адрес, где находится ссылка.

На двух последующих слайдах изображена программа с передачей данных между подфункциями (sub-functions) и функцией main Используется уже знакомое нам представление, где подфункции изображены как простые переменные ( change(int a, int b) ) Следующие 2 подфункции уже реализовывают передачу данных по средством ссылок. Попробуйте сделать сами! Подфункции со ссылками 12

#include void change(int a, int b) { printf("a = %d and b = %d\n", a,b); int abi=a; a=b; b=abi; printf("a = %d and b = %d\n", a,b); } void change2(int *p, int *q) { printf("addresses: p = %d and q = %d\n", p,q); printf("initial values: *p = %d and *q = %d\n", *p,*q); int abi=*p; *p=*q; *q=abi; printf("End values: *p = %d and q = %d\n", *p,*q); } void change3(int &a, int &b) { printf("a = %d and b = %d\n", a,b); int abi=a; a=b; b=abi; printf("a = %d and b = %d\n", a,b); } // функция main на следующем слайде

int main() { int m = 123, n=999; change(m,n); printf("change1: m=%d and n=%d\n", m,n); change2(&m,&n); printf("сhange2: m=%d and n=%d\n", m,n); change3(m,n); printf("сhange2: m=%d and n=%d\n", m,n); system("PAUSE"); return 0; }

Повторение 2 Составление подпрограмм: функции

Понятие функции Функция состоит из следующих компонентов: Выходным значением может быть любая переменная (не массив) В случае функции, которая ничего не выводит в типе выходного значения пишем ключевое слово void В типе выходного значения предпочтительно использовать signed int

Декларатор Под функциональным декларатором подразумевают имя функции и формальные параметры. Декларатор начинается с объявления функции, перечисление формальных параметров через запятую, и это перечисление находится в скобках. (,,..., )

Пример: Int fun(int a, int b, int c) {………………………} fun – это функция типа int, для которой выходными параметрами являются размерности a,b,c типа int Если формальные параметры отсутствуют, то мы дописываем ключевое слово void Теоретически можно оставить пустые скобки, но компилятор может отреагировать на это дело с осторожностью, выдав предупреждение. Выходными значениями и формальными параметрами могут быть любые одиночные переменные, но не массивы. double fun(double a, double b) {………….} !!!Нельзя!!! double fun (double a, b) !!!Нельзя!!!

Тело функции, ограниченное фигурными скобками начинает использовать задекларированные переменные и команды. Совершаются действия и заканчивается командой return – возврат. return В языке С нельзя вперемешку писать описывающие и исполняемые команды. Область действия задекларированных переменных – это тело функции, обозначенное фигурными скобками. После исполнения функций, (таких как main) следует ставить return так как мы заканчиваем их использовать.

Пример использования подфункций double max(double a, double b) { if (a>=b) return a ; else return b; } Здесь мы находим большее значение двух чисел. Конечно, чтобы все это заработало надо прописать функцию main и все необходимое

Вызов функции Функция вызывается командой/выражением по следующей схеме: (,..., ) Чтобы вызвать функцию без параметра, нужно оставить скобки пустыми Результат работы функции показывается /возвращается с соответствующей командой main Вызванное выражение может являться операндом другого выражения. Можем задать приоритет вызова выражений. К функции типа void можно обратиться командой обозначенной выражением.

Пример: double x,y,z,m; m=max(x*y-z, 5.0); Задание функции следующее double max(double a, double b); double x,u,v,m; m=max(x,max(u,v)); Находим максимум из 3 чисел

E-kursusi teaduskonniti 2009/2010 Спасибо, что прослушали курс ! Продолжайте свое обучение при помощи блока программного обеспечения (software/tarkvara ) Ознакомьтесь с материалами факультета Информационных Технологий по адресу