Методичка по С. Методические указания к лабораторному практикуму по дисциплине Программирование на языках высокого уровня (язык Си) москва 2005
Скачать 429.5 Kb.
|
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Московский государственный институт электроники и математики(Технический университет) Кафедра информационных технологий в автоматизированных системах МЕТОДИЧЕСКИЕ УКАЗАНИЯ к лабораторному практикуму по дисциплине Программирование на языках высокого уровня (язык Си) МОСКВА 2005 Составители: ст. преподаватель Е.А. Ерохина, проф.., к. т. н. Л.В. Зайцева, доц., к. т. н. В.Г. Ссорин. Методические указания предназначены для студентов, изучающих программирование на языке Си и содержат задания лабораторного практикума, выполняемые студентами самостоятельно под контролем преподавателя. Предназначено для студентов специальности 22.03 УДК 681.3.06 Е-60 Методические указания для выполнения лабораторных работ по дисциплине “Программирование на языках высокого уровня (язык Си)”/ Моск. гос. ин-т электроники и математики; Сост.: Е.А. Ерохина, Л.В. Зайцева, В.Г. Ссорин . М., 2005. 32 с. Библиогр.: 5 назв. ISBN 5-94506-100-X СОДЕРЖАНИЕ 1. Лабораторная работа 1. "Одномерные массивы" 4 2. Пример решения задачи 5 3. Лабораторная работа 2. "Двумерные массивы (с использованием указателей)" 6 4. Пример решения задачи 7 5. Лабораторная работа 3. "Символьные строки. Подпрограммы" 8 Выбор варианта 9 6. Пример решения задачи 9 7. Лабораторная работа 4. "Структуры. Файлы " 12 8. Примеры решения задач 14 9. Лабораторная работа 5. "Списки. Динамические переменные" 18 Выбор варианта 19 10. Пример решения задачи 19 11. Лабораторная работа 6. "Рекурсия" 22 12. Примеры решения задач 24 13. Пример использования рекурсии для проверки правильности записи арифметического выражения 26 14. Библиографический список 32 Лабораторная работа 1. "Одномерные массивы"Даны два одномерных массива целых чисел А и В. Вычислить одномерный массив С, который содержит: Нечетные элементы массива А, которых нет в массиве В. Элементы, присутствующие в обоих массивах А и В. Элементы, которые есть только в массиве А или только в массиве В. Четные элементы массива А, присутствующие в массиве В. Неповторяющиеся элементы массива А, которых нет в массиве В. Элементы массива А, которые присутствуют в массиве В. Элементы массива А, присутствующие в массиве В в одном экземпляре. Элементы массива А, повторяющиеся в массиве В несколько раз. Элементы, присутствующие в массивах А и В в одном экземпляре. Элементы, присутствующие в одном экземпляре либо только в массиве А, либо только в массиве В. Повторяющиеся элементы массива А, которые есть в массиве В. Повторяющиеся элементы массива А, которые есть в массиве В только в одном экземпляре. Неповторяющиеся элементы массива А, которые присутствуют в массиве В в нескольких экземплярах. Повторяющиеся элементы массива А, которых нет в массиве В. Неповторяющиеся элементы массива А, которые присутствуют в массиве В в одном экземпляре. Элементы массива А в одном экземпляре, которые есть в массиве В в одном экземпляре. Элементы массива А в одном экземпляре, которые есть в массиве В в нескольких экземплярах. Элементы, присутствующие в нескольких экземплярах либо только в массиве В, либо только в массиве А. Элементы в одном экземпляре (без повторений), присутствующие в обоих массивах А и В. Элементы в одном экземпляре (без повторений), которые есть только в массиве В или только в массиве А. Элементы в одном экземпляре (без повторений), присутствующие в массиве А, но отсутствующие в массиве В. Элементы в одном экземпляре (без повторений), присутствующие в обоих массивах А и В в нескольких экземплярах. Элементы в одном экземпляре (без повторений), присутствующие в нескольких экземплярах в массиве А, но отсутствующие в массиве В. Элементы в одном экземпляре (без повторений), присутствующие в нескольких экземплярах либо только в массиве А, либо только в массиве В. Элементы в одном экземпляре (без повторений), присутствующие в нескольких экземплярах либо в массиве А, либо в массиве В, либо в обоих массивах одновременно. ПРИМЕЧАНИЕ: Номер варианта выбирается равным номеру по журналу. Пример решения задачиЗадача 1.Сформировать массив С, состоящий из повторяющихся нечетных элементов массива А, отсутствующих в массиве В. Элементы в массиве С не должны повторяться. #include #include void main () {int a[10],b[10],c[10],na,nb,nc=0,i,j;//na,nb,nc-длины массивов a,b,c clrscr(); printf ("введите длину массива А:"); scanf("%d",&na); printf ("введите массив А\n"); for (i=0;i // ввод (nb, b[0:nb-1]) - аналогично for(i=0;i if (a[i] % 2 == 1)// можно записать условие в виде if (a[i] % 2) {//проверка повторения a[i] for(j=0;j if (j {//проверка отсутствия a[i] в b for (j=0;j if (j==nb)//условие отсутствия a[i] в b {//проверка отсутствия a[i] в c for (j=0;j if (j==nc)//если a[i] нет в с заносим его в этот массив c[nc++]=a[i]; } } } //вывод результата if (nc==0) printf("массив C пуст\n"); else { printf("Массив C\n"); for (i=0;i printf("%7d",c[i]); printf ("\n"); } printf("Нажмите любую клавишу\n"); getch(); } Лабораторная работа 2. "Двумерные массивы (с использованием указателей)"В заданном двумерном массиве целых чисел поменять местами следующие два элемента: Минимальный и максимальный. Два наименьших. Первый положительный и последний положительный. Два наибольших. Два первых положительных. Два последних отрицательных. Два первых четных. Два последних нечетных. Минимальный среди положительных и максимальный среди отрицательных. Два наибольших среди отрицательных. Два наименьших среди положительных. Минимальный и максимальный по абсолютной величине. Два наибольших по абсолютной величине. Минимальный среди элементов, расположенных выше главной диагонали и максимальный среди элементов, расположенных ниже главной диагонали. Два наименьших среди элементов, расположенных выше главной диагонали. Первый и последний положительные среди элементов, расположенных ниже главной диагонали. Два первых отрицательных среди элементов, расположенных выше главной диагонали. Два наибольших по абсолютной величине среди элементов, расположенных ниже главной диагонали. Минимальный и первый нулевой. Максимальный и последний отрицательный. Первый положительный и последний отрицательный. Последний нулевой и максимальный по абсолютной величине. Минимальный по абсолютной величине и пятый нулевой. Второй и пятый среди отрицательных элементов. Минимальный четный и последний положительный среди элементов, расположенных ниже главной диагонали. Первый и четвертый среди положительных элементов, расположенных выше главной диагонали. Минимальный и максимальный среди элементов, расположенных в четных столбцах. Два наибольших по абсолютной величине среди элементов, расположенных в нечетных строках. Минимальный среди элементов, расположенных в четных строках и максимальный среди элементов, расположенных в нечетных строках. Максимальный четный и последний нулевой среди элементов, расположенных в нечетных столбцах. ПРИМЕЧАНИЕ: Номер варианта выбирается равным номеру по журналу. Пример решения задачиЗадача 2.Поменять местами первый и четвертый положительные элементы целочисленной матрицы А. #include #include void main () {int a[10][10],n,m,i,j,*u1,*u4,buf,k=0; //k - число положительных элементов //u1 и u4 -указатели на 1-й и 4-й положительные элементы clrscr(); //ввод матрицы printf ("введите n и m :"); scanf("%d%d",&n,&m); printf ("введите матрицу А\n"); for (i=0;i for (j=0;j scanf("%d",&a[i][j]); u1=u4=NULL; //как только найден 4-й положительный элемент, оба цикла завершаются for (i=0;i for (j=0;j if (a[i][j]>0) {k++;//указатели меняются тогда, когда элемент был //положительным (первым или четвертым по счету) if (k==1) u1=&a[i][j]; if (k==4) u4=&a[i][j]; } if (u4==NULL)//если нет четырех положительных элементов printf("нет перестановки "); else { buf=*u1,*u1=*u4,*u4=buf;//обмен значений //вывод матрицы printf ("матрица А после перестановки\n"); for (i=0;i { for (j=0;j printf("%7d",a[i][j]); printf("\n"); } } getch(); } |