Курс Программирование II IAG0582(использование языка С с реализацией алгоритмов) модуль I Преподаватели: Владимир Вийес viis@ati.ttu.ee, Маргит Аарна margit@pld.ttu.ee, Вииви Йокк viivi.jokk@ttu.ee, Хеймар Веске heimar@cc.ttu.ee, Таллиннский Технич презентация

Содержание

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

Слайд 1Курс Программирование II IAG0582 (использование языка «С» с реализацией алгоритмов)
модуль I

Преподаватели:

Владимир

Вийес viisВладимир Вийес viis@ati.ttu.eeВладимир Вийес viis@ati.ttu.ee, Маргит Аарна margitВладимир Вийес viis@ati.ttu.ee, Маргит Аарна margit@pld.ttu.ee,
Вииви Йокк viivi.jokkВииви Йокк viivi.jokk@ttu.eeВииви Йокк viivi.jokk@ttu.ee, Хеймар Веске heimar@cc.ttu.ee,

Таллиннский Технический Университет
2012







Слайд 2Цели предмета
Развитие логического и творческого мышления путем решения оригинальных задач
Научиться реализовывать

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


Слайд 3Краткое описание курса
Структурированные типы данных (Обзор)
Декларация, обработка
Файлы. Типовые файлы, текстовые файлы,

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

Слайд 4Структура курса
Курс делится на 4 модуля/части:
1) Подготовка: ссылки, функции
2) Структурированные типы

данных: файлы, записи
3) Использование динамической памяти: структуры
4) ООП: C++, Java

Каждый модуль имеет:
Учебный материал (также видео лекцию).
Пример задания с объяснением его реализации.
Индивидуальные задания (с тестовыми данными и ответами)

Слайд 5Критерии оценивания
Домашнее задание = 30 пунктов

Письменный экзамен (2,5 ч ) +

устная часть = 70 пунктов

Допуск до экзамена 2+1 контрольные работы = 200 пунктов

Если у вас набралось в сумме 140 пунктов, то можно получить освобождение от письменной части на экзамене.



Слайд 6Предварительные знания
Курс “ПрограммированиеII” предполагает:

Что студент имеет представление о составлении алгоритмов
Что студент

знает основу языка С (DevC/C++)

В системе Moodle указан предшествующий курс “ПрограммированиеI “, который дает базовые знания в области программирования

Последние темы прошлого предмета мы повторим в рамках курса “ПрограммированиеII”

Ссылки (повторение 1)
Составление и использование подпрограмм (повторение 2)



Слайд 7Повторение 1 ССЫЛКИ


Слайд 8printf
printf(“ %lf”, x);
printf(“%lf”, &pi);


Одинаково???

Как получить их адреса???


Слайд 9Ссылка
#include
int main(void)
{
double pi=3.14; // переменная и ссылка одного типа
double

*x=π
printf( “%If”, *x);
return 0;
}

Для вывода значения используется не имя переменной, а ссылка на адрес, где находится pi
*x – ссылка на адрес ячейки памяти

Слайд 10Ссылка на ссылку
#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;
}

Попробуйте реализовать этот код!

Слайд 11Практическое задание по использованию ссылок
1) Программа запрашивает у пользователя целочисленное
значение

переменной и выводит на экран.

2) Напишите ссылку для адреса этой переменной (*viit)

3) Выведите на экран значение переменной и адрес,
используя ссылку

4) Выведите на экран адрес, где находится ссылка.

Слайд 12На двух последующих слайдах изображена программа с передачей данных между подфункциями

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

Подфункции со ссылками


Слайд 13#include
#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 на следующем слайде

Слайд 14int 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;
}

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


Слайд 16Понятие функции
Функция состоит из следующих компонентов:


Выходным

значением может быть любая переменная (не массив)

В случае функции, которая ничего не выводит в типе выходного значения пишем ключевое слово void
В типе выходного значения предпочтительно использовать signed int

*


Слайд 17Декларатор
Под функциональным декларатором подразумевают имя функции и формальные параметры.

Декларатор начинается с

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

<имя функции>(<определение 1 параметра>, <определение 2 параметра>,..., <определение n параметра>)

Слайд 18Пример:
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) !!!Нельзя!!!

Слайд 19

Тело функции, ограниченное фигурными скобками начинает использовать задекларированные переменные и команды

. Совершаются действия и заканчивается командой return – возврат.

return<представленное выражение задает размерность вызываемой функции>

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

После исполнения функций, (таких как main) следует
ставить return так как мы заканчиваем их использовать.

Слайд 20Пример использования подфункций

double max(double a, double b)
{
if (a>=b)
return a ;
else
return

b;
}

Здесь мы находим большее значение двух чисел.
Конечно, чтобы все это заработало надо прописать функцию main и все необходимое

Слайд 21Вызов функции
Функция вызывается командой/выражением по следующей схеме:
(

параметр>,..., <выражение, которое обозначает n параметр>)
Чтобы вызвать функцию без параметра, нужно оставить скобки пустыми

Результат работы функции показывается /возвращается с соответствующей командой main

Вызванное выражение может являться операндом другого выражения. Можем задать приоритет вызова выражений.

К функции типа void можно обратиться командой обозначенной выражением.

Слайд 22
Пример:

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 чисел

Слайд 23E-kursusi teaduskonniti 2009/2010




Спасибо , что прослушали курс !
Продолжайте свое обучение

при помощи блока программного обеспечения (software/tarkvara )













Ознакомьтесь с материалами факультета Информационных Технологий по адресу www.tud.ttu.ee

Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика