- •«Утверждаю»
- •Учебно-методический комплекс
- •Астана 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. Алгоритмизация графических построений.
- •Варианты заданий:
- •Сведения
- •Перечень экзаменационных вопросов по пройденному курсу
- •Глоссарий
Тема 6-7. Составление программ решения задач с использованием функции.
Форма проведения: Решение задач.
Задание.В заданиях требуется реализовать процедуры или функции.
Варианты заданий:
Описать функцию Min2(A,B) вещественного типа, находящую минимальное из двух вещественных чисел A и B. С помощью этой функции найти минимальные из пар чисел A и B, A и C, A и D, если даны числа A, B, C, D.
Описать функцию Fact(N) целого типа, вычисляющую значение факториала N! = 1·2·...·N (N > 0 — параметр целого типа). С помощью этой функции вычислить факториалы 10 данных чисел.
Описать функцию Max(A,N) вещественного типа, находящую максимальный элемент массива A, состоящего из N вещественных чисел. С помощью этой функции найти максимальные элементы массивов A, B, C размера NA, NB, NC соответственно.
Описать функцию NMin(A,N) целого типа, находящую номер минимального элемента массива A (массив состоит из N вещественных чисел). С помощью этой функции найти номера минимальных элементов массивов A, B, C размера NA, NB, NC соответственно.
Описать процедуру NMinmax(A,N,NMin,NMax), находящую номера минимального и максимального элемента массива A из N вещественных чисел. Выходные параметры: NMin (номер минимального элемента) и NMax (номер максимального элемента). С помощью этой процедуры найти номера минимальных и максимальных элементов массивов A, B, C размера NA, NB, NC соответственно.
Методические рекомендации по проведению СРСП.
Контрольный пример 1. Даны квадратные матрицы А, B, С иDпорядкаn. Получить матрицу (А+В)*(С+D).
Контрольный пример 2. Написать программу, вычисляющую числа Фибоначчи. Числа Фибоначчи 0, 1, 1, 2, 3, 5, 8, 13, 21, … начинаются с 0 и 1 и имеют то свойство, что каждое последующее число Фибоначчи равно сумме двух предыдущих.
/* пример 1 */ #include <stdio.h> #include <math.h> #include <conio.h> #define n 3 void input_matrix(int [n][n]); void summa_matrix(int [n][n], int [n][n], int [n][n]); void proiz_matrix(int [n][n], int [n][n], int [n][n]); main () { int a[n][n],c[n][n],b[n][n],d[n][n],ab[n][n],cd[n][n]; int ac[n][n], i, j; clrscr(); printf("Enter matrix A:\n"); input_matrix(a); printf("Enter matrix B:\n"); input_matrix(b); printf("Enter matrix C:\n"); input_matrix(c); printf("Enter matrix D:\n"); input_matrix(d); summa_matrix(a, b, ab); summa_matrix(c, d, cd); proiz_matrix(ab, cd, ac); printf("Matrix (A+B)*(C+D):\n"); for (i=0;i<n;i++) { for (j=0;j<n;j++) printf("%5d",ac[i][j]); printf("\n"); } getch(); return 0; } for (j=0;j<n;j++) scanf("%d",&x[i][j]); } void summa_matrix(int x[n][n], int y[n][n], int z[n][n]) { int i,j; for (i=0;i<n;i++) for (j=0;j<n;j++) z[i][j]=x[i][j]+y[i][j]; } void proiz_matrix(int x[n][n], int y[n][n], int z[n][n]) { int i,j,k,s; for (i=0;i<n;i++) for (j=0;j<n;j++) { s=0; for (k=0;k<n;k++) s+=x[i][k]*y[k][j]; z[i][j]=s; } } |
void input_matrix(int x[n][n]) { int i, j; for (i=0;i<n;i++) /* пример 2 */ #include <stdio.h> #include <math.h> #include <conio.h> long fibonacci(long); main () {long result, number; clrscr(); printf("Enter an integer: "); scanf("%ld", &number); result=fibonacci(number); printf("Fibonacci(%ld) = %ld\n", number, result); getch(); return 0; } long fibonacci(long n) { if (n==0 || n==1) return n; else return fibonacci(n-1)+fibonacci(n-2); }
|
Контрольный пример 3. Дано целое число n. Проверить, является ли оно простым.
Контрольный пример 4. Даны действительные числа u1, u2,w1,w2. Получить, гдеu,w– комплексные числаu1+iu2,w1+iw2(Определить процедуру вычисления суммы комплексных чисел).
/* пример 3 */ #include <stdio.h> #include <math.h> #include <conio.h> int prost(int ); main () { int n; clrscr(); printf("Enter number:\n"); scanf("%d", &n); if (prost(n)==1) printf("Number %d is prostoe",n); else printf("Number %d not is prostoe",n); getch(); return 0; } int prost(int k) { int i, j = 1; for (i=2;i<k-1;i++) if (k % i == 0) { j=0; break;} return (j); } |
/* пример 4 */ #include <stdio.h> #include <math.h> #include <conio.h> void summa(int *, int *, int *, int *, int *, int *); main () { int u1, u2, w1, w2, v1, v2; clrscr(); printf("Enter u1:\n"); scanf("%d",&u1); printf("Enter u2:\n"); scanf("%d",&u2); printf("Enter w1:\n"); scanf("%d",&w1); printf("Enter w2:\n"); scanf("%d",&w2); summa(&u1, &u2, &w1, &w2, &v1, &v2); printf("%d %d", v 1, v2); getch(); return 0; } void summa(int *a, int *b, int *c, int *d, int *e, int *f) { *e=*a+*c; *f=*b+*d; } |