- •«Утверждаю»
- •Учебно-методический комплекс
- •Астана 2010 График выполнения и сдачи заданий по дисциплине
- •Карта учебно-методической обеспеченности дисциплины Учебники, учебные пособия
- •Конспект лекционных занятий
- •Тема 1. Введение в программирование на Си. Структура программы. Директивы препроцессора. Типы данных.
- •Основные операции в языке Си.
- •Преобразование типов
- •Тема 2. Управляющие структуры. Выбор вариантов. Структура выбора If, If – Else, логические операции, операция условия, множественный выбор.
- •Тема 3. Управляющие структуры. Структуры повторения While, do – While, For. Управляющие операторы break и continue.
- •Тема 4. Массивы. Разработка программ с использованием одномерных и двумерных массивов.
- •Тема 5. Функции в Си. Создание и использование функций.
- •Тема 6. Классы памяти и разработка программ.
- •Тема 7. Указатели в Си.
- •Тема 8. Использование указателей при обработке одномерных и двумерных массивов.
- •Тема 9. Символы и строки в Си.
- •Функции сравнения из библиотеки обработки строк. Прототипы функций и краткое описание каждой из них приведены в таблице 6.
- •Функции поиска из библиотеки обработки строк. Прототипы функций и краткое описание каждой из них приведены в таблице 7.
- •Другие функции из библиотеки обработки строк. В таблице 8 приведены прототипы и краткое описание остальных функций из библиотеки обработки строк.
- •Ниже приведены примеры программы, использующих функции работы со троками.
- •Тема 11. Структуры данных в Си.
- •Тема 12. Динамические структуры данных.
- •Тема 13. Работа с файлами в Си.
- •Тема 14. Графика в Си.
- •Тема 15. Объектно-ориентированное программирование.
- •Методические рекомендации по выполнению лабораторных заданий
- •Лабораторная работа № 3. Использование операторов цикла при решении задач.
- •Лабораторная работа №4. Разработка программ с использованием одномерных массивов.
- •Лабораторная работа №5. Разработка программ с использованием двумерных массивов.
- •Лабораторная работа № 6. Программирование задач с использованием нескольких функций на языке Си.
- •Лабораторная работа № 8. Программирование задач обработки структур данных.
- •Лабораторная работа № 9. Разработка программ с использованием файловых переменных.
- •Лабораторная работа № 10. Разработка программ с использованием графических функций языка Си.
- •Содержание отчета по выполнению лабораторной работы
- •1 Задание
- •Тема 1. Запись констант, стандартных функций, выражений, операторов присваивания. Запись программ линейных структур алгоритмов.
- •Тема 2. Алгоритмическое описание, запись программ линейных, разветвляющихся.
- •Тема 3. Алгоритмическое описание, запись программ циклических структур алгоритмов.
- •Тема 4. Алгоритмическое описание, составление программ обработки одномерного массива.
- •Тема 5. Алгоритмическое описание, составление программ обработки двумерного массива.
- •Тема 6-7. Составление программ решения задач с использованием функции.
- •Рекомендуемая литература:
- •Тема 8-9. Составление программ решения задач обработки массивов с использованием указателей.
- •Тема 10-11. Программирование задач обработки символьных и стрковых данных.
- •Рекомендуемая литература.
- •Тема 12. Методы сортировки.
- •Тема 13. Составление программ решения задач с использованием структур данных.
- •Тема 14. Составление программ решения задач с использованием файла произвольного доступа.
- •Рекомендуемая литература.
- •Тема 15. Алгоритмизация графических построений.
- •Варианты заданий:
- •Сведения
- •Перечень экзаменационных вопросов по пройденному курсу
- •Глоссарий
Рекомендуемая литература.
1осн[325-355],2осн[371-405]
5доп[46-51],6доп[116-126], 8доп[13-16]
Тема 12. Методы сортировки.
Форма проведения: Решение задач.
Задание: Для приведенных вариантов заданий применить различные методы сортировки.
Варианты заданий:
Дан массив A(6, 6). Вывести строки массива по убыванию первых элементов строк.
Дан массив A(6, 6). Вывести столбцы массива по возрастанию максимальных элементов столбцов.
Дан массив A(6, 6). Вывести строки массива по неубыванию последних элементов строк.
Дан массив A(6, 6). Вывести строки массива по невозрастанию минимальных элементов строк.
Дан массив A(6, 6). Вывести столбцы массива по убыванию последних элементов столбцов.
Методические рекомендации по проведению СРСП.
Контрольный пример 1. (Метод пузырька). Упорядочить по неубыванию элементы массива А(100) (рисунок 11).
Контрольный пример 2. (Обменная сортировка). Упорядочить элементы массива А(100) по невозрастанию (рисунок 12).
Контрольный пример 3. (Сортировка по индексам). Упорядочить элементы массива А(100) по неубыванию.
/* пример 1 */ #include <stdio.h> #include <conio.h> #define n 100 main() { int i, b, pr, k, a[n]; clrscr(); for(i=0; i<n; i++) scanf(“%d”, &a[i]); pr=k=1; while (pr==1) { pr=0; for(i=0; i<n-k; i++) if (a[i]>a[i+1]) { b=a[i]; a[i]=a[i+1]; a[i+1]=b; pr=1; } k++; } for(i=0; i<n; i++) printf(“%3d”, a[i]); getch(); return 0; } |
/* пример 2 */ #include <stdio.h> #include <conio.h> #define n 100 main() { int i, j, b, a[n]; clrscr(); for(i=0; i<n; i++) scanf(“%d”, &a[i]); for(i=0; i<n-1; i++) for(j=i+2; j<n; j++) if (a[i]<a[j]) { b=a[i]; a[i]=a[j]; a[j]=b; } for(i=0; i<n; i++) printf(“%3d”, a[i]); getch(); return 0; } | ||
/* пример 3 */ #include <stdio.h> #include <conio.h> #define n 100 main() { int i, j, b, k, min, a[n]; clrscr(); for(i=0; i<n; i++) scanf(“%d”, &a[i]); i=0; while (i<n-1) { min=a[i]; k=i; for(j=i+1; j<n; j++) if (a[j]<min) { min=a[j]; k=j; } b=a[i]; a[i]=a[k]; a[k]=b; i++; } for(i=0; i<n; i++) printf(“%3d”, a[i]); getch(); return 0; } |
| ||
|
Тема 13. Составление программ решения задач с использованием структур данных.
Форма проведения: Решение задач.
Задание.Создать массив записей в соответствии с заданной структурой. Реализовать ввод и обработку записей.
Варианты заданий:
Варианты 1-5
Предусмотреть вывод значений для полей элементов массива записей по следующим ключам: по адресу юридической консультации, по названию юридической консультации, по фамилии, имени, отчеству (Ф.И.О.) адвоката или нотариуса, по номеру телефона адвоката или нотариуса.
Запросы:
Определить, сколько юридических консультаций находится в определенном районе.
Определить юридическую консультацию, в которой работает наибольшее количество адвокатов.
Определить юридическую консультацию, в которой работает наименьшее количество нотариусов.
Определить, сколько нотариусов и адвокатов работает в определенной юридической консультации.
Определить юридические консультации, которые находятся на одной определенной улице.
Методические рекомендации по проведению СРСП.
Контрольный пример 1. Даны сведения о сотрудниках фирмы: фамилия, имя, адрес, возраст, телефон, зарплата. Вывести сведения о сотрудниках по имени Alexв возрасте от 25 до 30 лет.
Контрольный пример 2. Даны сведения о сотрудниках фирмы: фамилия, имя, адрес, возраст, телефон, зарплата. Вывести список сотрудников по убыванию возраста.
/* пример 1 */ #include <stdio.h> #include <conio.h> #include <string.h> #include <stdlib.h> #define n 3 struct person { char fam[20], name[15], address[30]; int age, phone, salary; }; main () { struct person str_pr[n]; int i; clrscr(); printf("Input svedeniya\n"); |
/* пример 2 */ #include <stdio.h> #include <conio.h> #define n 3 struct person { char fam[20], name[15], address[30]; int age, phone, salary; }; main () { struct person str_pr[n], buf; int i, j; clrscr(); |
for (i=0;i<n;i++) {printf("%i person\n",i+1); printf("Fam: "); scanf("%s", str_pr[i].fam); printf("Name: "); scanf("%s", str_pr[i].name); printf("Address: "); scanf("%s", str_pr[i].address); printf("Age: "); scanf("%i", &str_pr[i].age); printf("Phone: "); scanf("%i", &str_pr[i].phone); printf("Salary: "); scanf("%i", &str_pr[i].salary); printf("\n"); } for (i=0;i<n;i++) if (strcmp(str_pr[i].name,"alex")==0&& str_pr[i].age>=25&&str_pr[i].age<=30) { printf("Fam: %s\n", str_pr[i].fam); printf("Address: %s\n", str_pr[i].address); printf("Phone: %i\n", str_pr[i].phone); printf("Salary: %i\n", str_pr[i].salary); } getch(); return 0; } |
printf("Input svedeniya\n"); for (i=0;i<n;i++) {printf("%i person\n",i+1); printf("Fam: "); scanf("%s", str_pr[i].fam); printf("Name: "); scanf("%s", str_pr[i].name); printf("Address: "); scanf("%s", str_pr[i].address); printf("Age: "); scanf("%i", &str_pr[i].age); printf("Phone: "); scanf("%i", &str_pr[i].phone); printf("Salary: "); scanf("%i", &str_pr[i].salary); printf("\n"); } for (i=0;i<n-1;i++) for (j=i+1;j<n;j++) if (str_pr[i].age<str_pr[j].age) { buf=str_pr[i]; str_pr[i]=str_pr[j]; str_pr[j]=buf; } for (i=0;i<n-1;i++) { printf("Fam: %s\n", str_pr[i].fam); printf("Name: %s\n", str_pr[i].name); printf("Address: %s\n", str_pr[i].address); printf("Age: %i\n", str_pr[i].age); printf("Phone: %i\n", str_pr[i].phone); printf("Salary: %i\n", str_pr[i].salary); } getch(); return 0; } |
Рекомендуемая литература.
1осн[393-397],2осн[406-436],3осн[108-128], 6доп[200-209], 8доп[13-16]