Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаб.раб по С.doc
Скачиваний:
11
Добавлен:
04.11.2018
Размер:
307.71 Кб
Скачать

1. Порядок выполнения работы

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

различными значениями, но с одинаковыми именами "ab".

1.2. В программе 2 (строка А2) объявить переменную b в классе памяти auto (Приложение 1). Изучить отличие результатов программ исходной 2 и модифицированной 2.

С помощью трассировки (Приложение 2) проследить за измене-нием содержания регистра (Меню Window режим Register), содержащего переменную ab.

1.3. В модифицированной по п.1.2 программе 2 в строке А1

объявить переменную "а" в классе памяти static (Приложение 1).

Изучить отличие результатов работы всех трех версий программы 2.

1.4. Проверить работоспособность программы 3 в случаях

- отсутствия объявления глобальной переменной glob в строке А1;

-описания переменной glob в классе памяти auto в строках А2 и А3.

Отладку осуществлять с использованием трассировки (Приложение 2).

/* Программа 1 */

#include <stdio.h>

void prog1A(void);

void prog1B(void);

int ab=1;

main()

{

int ab=0;

prog1A();

prog1B();

}

void prog1A(void)

{

auto int ab=2;

}

void prog1B(void)

{

printf("Значение переменной ab = %d\n",ab);

}

/* Программа 2 */

// Классы памяти: статическая переменная

#include <stdio.h>

void prog2A(void);

main()

{

register int ab;

for (ab=1;ab<=3;ab++)

{

printf("Итерация %d\n",ab);

prog2A();

}

}

void prog2A(void)

{

int a=1; // строка А1

static int b=1; // строка А2

printf("a = %d и b = %d\n",a++,b++);

}

/* Программа 3 */

// Классы памяти: глобальная переменная

#include <stdio.h>

void prog3A(void);

int glob; // внешняя переменная строка А1

main()

{

extern int glob; // строка А2

printf(" Введите числовой пароль \n");

scanf ("%d",&glob);

while (glob!=57)

prog3A();

printf(" Вы получаете доступ к базе.\n");

}

void prog3A(void)

{

extern int glob; // строка А3

printf(" Введите пароль еще раз \n");

scanf ("%d",&glob);

return (0);

}

2. Индивидуальные задания

1. В программе 3 вводить пароль-ключ доступа к Базе (длиной не более 6 байт).

2. В программе 3 организовать подсчет количества раз ввода неправильного пароля и вывод этого количества на экран.

3. Даны отрезки a, b, c, d. Для каждой тройки этих отрезков вычислить площадь треугольника в функции и распечатать ответ в вы-

зывающей программе.

4. Даны координаты отрезков a, b, c, d. Для каждой тройки этих отрезков построить треугольники на экране дисплея.

5. Даны две квадратные вещественные матрицы 10-го порядка. Напечатать квадрат той из них, в которой наименьший след (сумма диагональных элементов).

*** Написать функции:

forward - переместиться на заданное расстояние;

left - повернуть налево на заданный угол;

right - повернуть направо на заданный угол;

pen_up - поднять перо;

pen_down - опустить перо.

Функции должны взаимодействовать через глобальные переменные:

xpos, ypos - координаты;

pen - поднято перо или нет;

angle - угол с осью абсцисс.

С помощью этих функций нарисовать на экране:

6. Квадрат со стороной 75 единиц и центром, совпадающим с центром экрана.

7. Прямоугольник с отношением сторон 1:2 и со срезанными углами. Положение прямоугольника на экране произвольно.

8. Четыре крупные цифры - текущий год (цифры написаны по девятисегментному шаблону, как на почтовых конвертах)&

9. Те же цифры, что в зад.8, но по семисегментному шаблону, как в электронных часах.

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