- •«Утверждаю»
- •Учебно-методический комплекс
- •Астана График выполнения и сдачи заданий по дисциплине
- •Карта учебно-методической обеспеченности дисциплины Учебники, учебные пособия
- •Конспект лекционных занятий
- •Тема 1. Введение в программирование на Си. Структура программы. Директивы препроцессора. Типы данных.
- •Основные операции в языке Си.
- •Преобразование типов
- •Тема 2. Управляющие структуры. Выбор вариантов. Структура выбора If, If – Else, логические операции, операция условия, множественный выбор.
- •Тема 3. Управляющие структуры. Структуры повторения While, do – While, For. Управляющие операторы break и continue.
- •Тема 4. Массивы. Разработка программ с использованием одномерных и двумерных массивов.
- •Тема 5. Функции в Си. Создание и использование функций.
- •Тема 6. Классы памяти и разработка программ.
- •Тема 7. Указатели в Си.
- •Тема 8. Использование указателей при обработке одномерных и двумерных массивов.
- •Тема 9. Символы и строки в Си.
- •Тема 10. Функции операции над строками.
- •Функции сравнения из библиотеки обработки строк. Прототипы функций и краткое описание каждой из них приведены в таблице 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осн[173-205], 2осн[256-290], 5доп[51-54], 7доп[23-28]
Тема 8-9. Составление программ решения задач обработки массивов с использованием указателей.
Форма проведения: Решение задач.
Задание: Реализовать обработку массива с использованием указателей, как указано в варианте. Составить блок-схему алгоритма и написать программу.
Варианты заданий:
Дана целочисленная матрица размера M x N. Найти количество ее строк, все элементы которых различны.
Дана целочисленная матрица размера M x N. Вывести номер ее первой строки, содержащей максимальное количество одинаковых элементов.
Дана квадратная матрица порядка M. Найти суммы элементов ее диагоналей, параллельных главной (начиная с одноэлементной диагонали A[1,M]).
Дана квадратная матрица порядка M. Найти суммы элементов ее диагоналей, параллельных побочной (начиная с одноэлементной диагонали A[1,1]).
Дана квадратная матрица порядка M. Вывести максимальные из элементов каждой ее диагонали, параллельной побочной (начиная с одноэлементной диагонали A[1,1]).
Методические рекомендации по проведению СРСП.
Контрольный пример 1. Даны натуральное число n, действительные числа a1, ..., a2n. Получить a1a2n + a2a2n-1 + … + anan+1.
Контрольный пример 2. Дан одномерный массив. Найти среди элементов массива максимальный и зафиксировать его порядковый номер.
Контрольный пример 3. Дан двумерный массив. Найти минимальный и максимальный элементы массива.
/* пример 1 */ #include <conio.h> #include <stdio.h> #define n 4 main () { clrscr(); int a[n],i,s,*ptr; printf("Input massiv\n"); for (i=0;i<2*n;i++) scanf("%d", &a[i]); ptr=a; s=0; for (i=0;i<n;i++) s+=*(ptr+i)**(ptr+2*n-1-i); printf("S = %d\n",s); getch(); return 0; } |
/* пример 2 */ #include <conio.h> #include <stdio.h> #define n 5 main () { clrscr(); int a[n],i,*max,pos; printf("Input massiv\n"); for (i=0;i<n;i++) scanf("%d", &a[i]); max=a; pos=0; for (i=0;i<n;i++) if (*(a+i)>*max) { max=a+i; pos=i; } printf("Max = %d raspolojen na %d meste",*max,pos+1); getch(); return 0; } |
/* пример 3 */
#include <stdio.h>
#include <conio.h>
#define n 3
main()
{ int i, j, m1, m2, p1, p2, buf, a[n][n];
int *min, *max,s;
clrscr();
printf("Input matrix %dX%d\n",n,n);
for(i=0; i<n; i++)
for(j=0; j<n; j++)
scanf("%d", &a[i][j]);
min=*a; m1=m2=p1=p2=0;
printf("Min = %3d m1 = %3d p1 = %3d\n", *min,m1,p1);
for(i=0; i<n; i++)
for(j=0; j<n; j++)
if (*(*(a+i)+j)<*min)
{
*min=*(*(a+i)+j); m1=i; p1=j;
}
printf("Min = %3d m1 = %3d p1 = %3d\n", *min,m1,p1);
max=*a;
for(i=0; i<n; i++)
for(j=0; j<n; j++)
if (*(*(a+i)+j)>*max)
{
*max=*(*(a+i)+j); m2=i; p2=j;
}
printf("Max = %3d m2 = %3d p2 = %3d\n", *max,m2,p2);
getch();
return 0;
}
Рекомендуемая литература.
1осн[273-292], 2осн[273-276], 6доп[135-147]