Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Цель работы:
- Изучить процесс прохождения программы на языке СИ в сис¬теме программирования Visual Studio. Ознакомиться с технологией от¬ладки программ. Изучить основные конструкции операторов при¬сваивания и директивы препроцессора.
- Исходные данные и задание для варианта №7:
- Исходные данные: A=4, B=8, C=66, D=34.
- • А - умножить на сумму В и С, деленную по модулю 6, затем прибавить D. D увеличить на 1.
- • B - разделить на 7.
- • С - вычесть А и В. А увеличить на 1, В уменьшить на 1. Результат разделить на 3.
- • D - выполнить поразрядное «или» 0-5 разрядов В и 0-3 разрядов С, сдвинутых вправо на 2 разряда.
- Методические указания:
- 1. При выполнении работы следует стремиться максималь¬но упростить выражения в операциях присваивания. Для этого следует использовать операции инкремента и декремента, а так¬же операторы «+=», «*=» и т. п.
- 2. Все константы, используемые в программе, должны быть описаны директивами препроцессора #define.
- 3. Для использования функций ввода/вывода printf() и scanf() необходимо включить в программу файл stdio.h директивой
- #include <stdio.h>
- 4. Все программы должны быть отлажены в пошаговом режиме с выводом информации о значениях переменных в окно отладки
- Ход работы:
- 1. Написать программу, выполнявшую арифметические и логические операции над целыми переменными А, В, С, D, используя глобальные статические пере¬менные и инициализацию при компиляции и выводя значения пере¬менных с помощью функции printf() в заданном формате.
- Алгоритм:
- #include <stdio.h>
- static int A=4, B=8, C=66, D=34;
- void main()
- {
- printf ("Исходные данные A = %d, B = %d, C = %d, D = %d \n", A, B, C, D);
- A=A*((B+C)%6)+D; D++;
- B/=7;
- C=C-A-B; A++; B--;
- C/=3;
- D=(B&31)|((C&15)>>2);
- printf ("Конечные данные A = %d, B = %d, C = %o, D = %o", A, B, C, D);
- }
- 2. Модифицировать программу, описав переменные как локальные и задав их значения с помощью прямого присваивания.
- Алгоритм:
- #include <stdio.h>
- void main()
- {
- static int A=4, B=8, C=66, D=34;
- printf ("Исходные данные A = %d, B = %d, C = %d, D = %d \n", A, B, C, D);
- A=A*((B+C)%6)+D; D++;
- B/=7;
- C=C-A-B; A++; B--;
- C/=3;
- D=(B&31)|((C&15)>>2);
- printf ("Конечные данные A = %d, B = %d, C = %o, D = %o", A, B, C, D);
- }
- 3. Изменить программу, используя для ввода значений переменных функцию scanf.
- Алгоритм:
- #include <stdio.h>
- void main()
- {
- static int A, B, C, D;
- printf("Введите A, B, C, D: ");
- scanf("%d %d %d %d", &A, &B,&C, &D);
- printf ("Исходные данные A = %d, B = %d, C = %d, D = %d \n", A, B, C, D);
- A=A*((B+C)%6)+D; D++;
- B/=7;
- C=C-A-B; A++; B--;
- C/=3;
- D=(B&31)|((C&15)>>2);
- printf ("Конечные данные A = %d, B = %d, C = %o, D = %o", A, B, C, D);
- }
- 4. Описать переменные как автоматические. Вывести их значения до присваивания.
- Алгоритм:
- #include <stdio.h>
- void main()
- {
- auto int A, B, C, D;
- printf("До присваивания A=%d B=%d C=%d D=%d",A,B,C,D);
- printf("Введите A, B, C, D: ");
- scanf("%d %d %d %d", &A, &B, &C, &D);
- printf ("Исходные данные A = %d, B = %d, C = %d, D = %d \n", A, B, C, D);
- A=A*((B+C)%6)+D; D++;
- B/=7;
- C=C-A-B; A++; B--;
- C/=3;
- D=(B&31)|((C&15)>>2);
- printf ("Конечные данные A = %d, B = %d, C = %o, D = %o", A, B, C, D);
- }
- 5. Повторить п. 2 разместив все описания в отдельном файле.
- Алгоритм:
- #include <stdio.h>
- #include "LR-1.h"
- void main()
- {
- printf("Введите A, B, C, D: ");
- scanf("%d %d %d %d", &A, &B, &C, &D);
- printf ("Исходные данные A = %d, B = %d, C = %d, D = %d \n", A, B, C, D);
- A=A*((B+C)%6)+D; D++;
- B/=7;
- C=C-A-B; A++; B--;
- C/=3;
- D=(B&31)|((C&15)>>2);
- printf ("Конечные данные A = %d, B = %d, C = %o, D = %o", A, B, C, D);
- }
- Описания размещены в файле LR-1.h: static int A, B, C, D;
- 6. Повторить п. 2., использовав вместо переменных А, В, С, D статический массив.
- #include <stdio.h>
- static int mas[]={4,8,66,34};
- void main()
- {
- printf(" Исходные данные mas[0]=%d mas[1]=%d mas[2]=%d mas[3]=%d ", mas[0],mas[1],mas[2],mas[3]);
- mas[0]=mas[0]*((mas[1]+mas[2])%6)+ mas[3]; mas[3]++;
- mas[1]/=7;
- mas[2]=mas[2]-mas[0]-mas[1]; mas[0]++; mas[1]--;
- mas[3]=(mas[1]&31)|((mas[2]&15)>>2);
- printf(" Конечные данные mas[0]=%d mas[1]=%d mas[2]=%o mas[3]=%o ", mas[0],mas[1],mas[2],mas[3]);
- }
- Результат:
- A = 43 B = 0 C = 27 D = 1
- Вывод: Таким образом, мы изучили процесс прохождения программы на языке СИ в сис¬теме программирования Visual Studio, а также ознакомиться с технологией от¬ладки программ и изучили основные конструкции операторов при¬сваивания и директивы препроцессора.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement