Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metod_ukazanija C_1-8.docx
Скачиваний:
12
Добавлен:
20.04.2015
Размер:
378.52 Кб
Скачать

Контрольные вопросы к теме № 3

  1. Как использовать цикл for в языке Си?

  2. Что означают операторы «++», «– –», «+=» и т.д.?

  3. Назначение оператора breakв языке Си?

  4. К какому типу относится цикл for(с пред- или пост- условием)?

  5. Как использовать цикл while?

  6. Как использовать цикл do…while?

  7. Чем отличаются циклы с пред-и пост-условиями?

Тема №4. Функции в языке Си

Задание: реализуйте задачу по теме №3 с использованием функций.

Пример решения задачи по теме №3 с использованием функций.

Для иллюстрации решения рассмотрим алгоритм, представленный для языка Паскаль. Сделаем «перевод» с языка Паскаля на язык Си, указав отличия.

Во-первых, нет необходимости процедуры определения предыдущего элемента перед предыдущим, так как эта операция в языке Си делается в одно действие.

Во-вторых, напомним, что в языке Си нет понятия «процедура», но есть функция, которая не возвращает никакого значения.

В-третьих, не ставьте знак «точка с запятой» после закрывающей круглой скобки в перечне параметров.

В-четвертых, для каждого параметра обязательно укажите тип, а параметры разделяйте запятыми.

Пятое – при вызове функции на исполнение, если даже у нее нет параметров, круглые скобки обязательны.

Шестое – локальные переменные пишутся внутри операторных скобок, определяющих тело функции.

#include <stdio.h>

#include <conio.h>

//Описание функции печати части строки

void Part(char First, char Last)

{ char C;

C = First;

Last --;

while (C <= Last)

{

printf("%2c",C);

C+=2;

}

}

//Основная часть программы

int main()

{

const int F1= 'K';

const int F2='A';

char First1 =F1, First2 =F2;

while (First1>='C')

{

Part(First1,F1); // Печать первой части строки

Part(First2,First1); // Печать второй части строки

printf("\n");

First1 -=2;

}

return 0;

}

}

Контрольные вопросы по теме №4

  1. Что такое глобальные переменные?

  2. Для чего нужны параметры в функции?

  3. Назначение функций?

  4. Что такое локальные переменные?

  5. Что такое параметры-переменные?

  6. Что такое параметры-значения?

  7. Что такое рекурсия?

  8. Что такое условие выхода из рекурсии?

  9. Что такое формальные параметры?

  10. Что такое фактические параметры?

Тема №5. Обработка одномерных массивов Задание:

заполните один или несколько одномерных массивов (по индивидуальному заданию). Распечатайте результат заполнения. Проведите преобразование (по индивидуальному заданию) и упорядочивание (сортировку) массивов. Распечатайте результирующие массивы. Сортировки проведите тремя методами. При использовании каждого из методов желательно использовать свой массив. Если количество массивов меньше трех, то один из массивов перед сортировкой надо скопировать в дополнительный массив и провести его сортировку.

Краткая теоретическая справка и рекомендации по выполнению

Для переменных типа массив в языке Си всегда в качестве индекса используется целое число. Это связано с тем, что переменная типа массив является указателем на начало этого одномерного массива. Аналогично в математике и физике определяется относительная система координат. А индекс – это смещение относительно начала отсчета в этой системе. Причем компилятор языка Си не отслеживает правильность использования индекса. По этой причине при неаккуратном программировании может возникнуть множество проблем, вплоть до «зависания» компьютера, если только операционная система не «отследит» обращение по некорректному адресу.

Самый безобидный вариант некорректного использования индексов приведен в следующем коротком фрагменте программы:

int x; int y[2]; int z;

void main()

{

x=1; z=4;

y[0]=2; y[1]=3; // Корректное обращение к элементам массива

y[-1]=5; y[2]=6; // Некорректное обращение к элементам массива

}

Здесь три глобальные переменные x,y,zрасположены друг за другом. Так как они глобальные, то в такой же последовательности они будут располагаться в оперативной памяти. Поэтому присваивание элементуy[–1] значения 5, приведет к изменению переменнойx, а изменение элементаy[2] изменит переменнуюz. На этом же примере легко можно убедиться, что при объявлении переменной типа массив, в квадратных скобках указывается общее количество элементов массива. Если количество элементов переменной типа массив былоN, то первый элемент будет с индексом 0, а последний – с индексом (N–1).

Для одномерных массивов также распространена другая форма обращения к отдельному элементу. В записи *(y+1), в соответствии с порядком выполнения операций языка Си, сначала вычисляется адрес размещения переменной в оперативной памяти (y+1), а потом определяется сам элемент с помощью оператора «звездочка» (разыменование). При выполнении лабораторного задания необходимо хотя бы в одном месте использовать обращение к элементу массива через указатель.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]