4. Порядок выполнения работы
1. Скопируйте в свою папку программу LAB10.C из папки C Examples в папке Рабочая папка.
2. Запустите Dev-C++ для программы LAB10.C.
3. Программа определяет наибольший общий делитель для натуральных (целых) чисел m и n с использованием следующего алгоритма:
1) Ввод чисел m и n.
2) Присваивание переменной x1 значения переменной m, а переменной x2 – значения переменной n.
3) Если значения переменных x1 и x2 равны друг другу, вывод значений m, n и x1, а затем выход из программы, иначе выполнение пунктов 4-5.
4) Если x1 больше x2, уменьшить значение x1 на значение x2, иначе уменьшить значение x2 на значение x1.
5) Переход к пункту 3.
4. Найдите в тексте программы оператор int и получите по нему справку. Откройте текстовый редактор Блокнот и скопируйте в его окно содержимое справки с заголовком "Ключевое слово int".
5. Найдите в тексте программы оператор return и получите по нему справку. Скопируйте в окно текстового редактора Блокнот содержимое справки с заголовком "Ключевое слово return".
6. Найдите в тексте программы функцию printf() и получите по ней справку. Скопируйте в окно текстового редактора Блокнот содержимое справки (до пункта More About printf) с заголовком "Функция printf()".
7. Найдите в тексте программы функцию getchar() и получите по ней справку. Скопируйте в окно текстового редактора Блокнот содержимое справки (до пункта More About printf) с заголовком "Функция getchar()".
8. Запустите программу на выполнение (программа содержит ошибку). Найдите строку с ошибкой и исправьте ошибку (xx1 на x1).
9. Повторно запустите программу на выполнение. Введите значения тестовые значения m и n: 42 и 28. Обратите внимание, что программа работает неправильно (наибольшим общим делителем чисел 42 и 28 на самом деле является число 14).
10. Запустите программу в режиме отладки. Установите точку прерывания на десятой строке программы – операторе:
printf("\nProgram start);
11. Задайте переменные x1 и x2 как наблюдаемые и проверьте их значения в точке прерывания.
12. Продолжите выполнения программы по шагам до оператора
printf ("\nThe greatest common divisor %d and %d: %d\n",m, n,x1);
13. Проверьте значение переменных в этой точке и выясните, почему значение x1 стало неверным (обратите внимание на оператор if в строке 12).
14. Исправьте ошибку в программе и заново запустите программу с теми же тестовыми значениями в режиме отладки с той же точки прерывания с пошаговым выполнением. Убедитесь, что программа выдает правильное значение наибольшего общего делителя.
15. Заново запустите программу на выполнение со следующими двумя числами для своего варианта:и 44;и 24;и 56;и 48;и 36;и 98;и 66;и 144;и 68; и 48; и 42; и 48; и 98; и 64; и 84.
16. Покажите преподавателю программу и результаты ее работы и скопируйте текст программы и результат работы программы в окно текстового редактора Блокнот с заголовками "Текст программы LAB10.C" и "Результат работы программы LAB10.C".
17. Напишите программу (имя программы латинскими буквами) в соответствии со своим вариантом, а затем выполните ее отладку и тестирование (задание значений – с помощью операции присваивание, вывод результатов – с помощью функции printf()):
Номер варианта | Исходные данные | Операция | Вывод | ||
Имя | Тип | Значение | |||
1 | x1 | double | 3.5 | x равен целой части x1+x2 | x1, x2 и x |
x2 | double | -1.8 | |||
x | double | -- | |||
2 | x1 | double | 8.4 | x равен дробной части x1+x2 | x1, x2 и x |
x2 | double | -1.3 | |||
x | double | -- | |||
3 | i | double | 8.7 | x равен целой части i*j | i, j и x |
j | double | -12 | |||
x | double | -- | |||
4 | u1 | double | 13.3 | u равен дробной части u1*u2 | u1, u2 и u |
u2 | double | -7.8 | |||
u | double | -- | |||
5 | a1 | double | -7.8 | a равен целой части a1/a2 | a1, a2 и a |
a2 | double | -4.3 | |||
a | double | -- | |||
6 | b1 | double | 14.6 | b равен дробной части b1/b2 | b1, b2 и b |
b2 | double | 5.7 | |||
b | double | -- | |||
7 | w1 | double | 118.6 | w= w1 + целая часть w2 | w1, w2 и w |
w2 | double | 1.52·102 | |||
w | double | -- | |||
8 | i1 | int | 15 | z=i1/i2 (результат- вещественное число) | i1, i2 и z |
i2 | int | 6 | |||
z | double | -- | |||
9 | d1 | double | 18.3 | d равен остатку от d1/d2 | d1, d2 и d |
d2 | double | 4.8 | |||
d | double | -- | |||
10 | y | int | 8 | y1=y++ +5 y=8 y2=++y +5 | y, y1 и y2 |
y1 | int | -- | |||
y2 | int | -- |
Номер варианта | Исходные данные | Операция | Вывод | ||
Имя | Тип | Значение | |||
11 | t | int | 14 | t1=t-- +7 t=14 t2=--t +7 | t, t1 и t2 |
t1 | int | -- | |||
t2 | int | -- | |||
12 | v1 | double | 14.3 | v равно значению первой цифры после десятичной точки в v1/v2 | v1, v2, v1/v2 и v |
v2 | double | 3.1 | |||
v | int | -- | |||
13 | s1 | double | 144.2 | s равно значению первой цифры в целой части s1/s2 | s1, s2, s1/s2 и s |
s2 | double | 7.3 | |||
s | int | -- | |||
14 | a1 | int | 1 | Условная операция: если x>0, то y=a1, иначе y=a2 | x, a1, a2 и y |
a2 | int | -1 | |||
x | int | -3 | |||
y | int | -- | |||
15 | g1 | int | 0 | Условная операция: если g – четное, то z=g1, иначе z=g2 | g, g1, g2 и z |
g2 | int | 1 | |||
g | int | 4 | |||
z | int | -- |
18. Покажите преподавателю программу и результаты ее работы и скопируйте текст программы и результат работы программы в окно текстового редактора Блокнот с заголовками "Текст программы имя-программы" и "Результат работы программы имя-программы ".
19. Скопируйте полученный в окне текстового редактора Блокнот документ на свою дискету или флэш-карту.
5. Содержание отчета
В отчете должно быть представлено содержимое созданного вами документа.
6. Вопросы для самоконтроля
20. Какие компоненты включают в себя интегрированная оболочка BorlandC?
21. Назовите окна интегрированной оболочки BorlandC++ и их назначение.
22. Какая операции над текстом исходной программы можно выполнить с помощью команд меню File?
23. С помощью какой команды можно сразу откомпилировать, скомпоновать и выполнить программу в BorlandC++?
24. Какие типы символов определены в C? Какие функции выполняет каждый тип символов?
25. Какие типы констант определены в C?
26. Какие типы целых констант определены в C?
27. Как объявляются переменные в C? Какие функции выполняют квалификаторы при объявлении переменных?
28. Как инициализируются переменные в C?
29. Какие арифметические операции определены в C?
30. Каков приоритет арифметических операций в C и как можно изменить порядок выполнения операций?
31. Какие формы оператора присваивания определены в C?
32. Что такое стандартная библиотека C и как включить разделы этой библиотеки в текст программы?
33. Как можно вывести результаты работы на экран дисплея в C?
34. Для каких целей используются спецификации формата и как они записываются?
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 |


