Технология работы с программами на языке СИ в системе программирования Quick C. Элементарные операции

Страницы работы

Содержание работы

Новосибирский Государственный Технический Университет

Лабораторная работа № 1

Тема:Технология работы с программами на языке СИ в системе

программирования Quick C. Элементарные операции.

Группа: АП-318                          Дата: 15.03.2004

Преподаватель: Щувихина Я.В.

Студенты: Иванчиков И.В.

                   Мухин Р.С.

                   Некрасов А.В.

Вариант: III

г.Новосибирск 2003г.


Цель: Изучить процесс прохождения программы на языке СИ в сис­теме программирования QUICK-C. Ознакомиться с технологией от­ладки программ. Изучить основные конструкции операторов при­сваивания и директивы препроцессора.

Задача: А - сложить с В и С, увеличенными на 1 и разделить по модулю D.

              В - разделить на 6

  С - сложить с В, уменьшенным  на 1 и прибавить А. А увеличить на 1.

             D - 2-8 разряды В и 1-3 разряды С, сдвинутые вправо на 2.

Задание 1:

Написать программу, выполнявшую арифметические и логические операции над целыми переменными А, В, С, D. Использовать. глобальные статические пере­менные и инициализацию при компиляции. Вывести значения пере­менных с помощью функции printf. Переменные С и D печатать в восьмеричном виде.

Текст программы:

#include<stdio.h>

static int a=2,b=5,c=0,d=3;

main()

{

    a=(a+(++b)+(++c))/d;

    printf("\nA=%d",a);

    b=b/6;

    printf(" B=%d",b);

    c=c+(--b)+a++;

    printf(" C=%o",c);

    d=((b&508)&(c&14))>>2;

    printf(" D=%o",d);

    return 0;

}

Результаты: A=3 B=1 C=4 D=0

Вывод: Написали программу, выполняющую арифметические и логические операции над целыми переменными А, В, С, D, используя глобальные статические пере­менные и инициализацию при компиляции. Вывели значения пере­менных с помощью функции printf. Переменные С и D напечатали в восьмеричном виде.


Задание 2:

Модифицировать программу, описав переменные как локальные и задав их значения с помощью прямого присваивания. Сравнить результаты с результатами задания 1.

Текст программы:

#include<stdio.h>

main()

{

    static int a=2,b=5,c=0,d=3;

    a=(a+(++b)+(++c))/d;

    printf("\nA=%d",a);

    b=b/6;

    printf(" B=%d",b);

    c=c+(--b)+a++;

    printf(" C=%o",c);

    d=((b&508)&(c&14))>>2;

    printf(" D=%o",d);

    return 0;

}

Результаты: A=3 B=1 C=4 D=0

Вывод: Модифицировали программу, описав переменные как локальные и задав их значения с помощью прямого присваивания. Результаты не изменились.


Задание 3:

Изменить программу,  использовав для ввода значений переменных функцию scanf. Сравнить результаты.

Текст программы:

#include<stdio.h>

main()

{

    static int a,b,c,d;

    //a=2,b=5,c=0,d=3;

    printf("Введите данные:\n");

    printf("\nA=");

    scanf("%d",&a);

    printf("B=");

    scanf("%d",&b);

    printf("C=");

    scanf("%d",&c);

    printf("D=");

    scanf("%d",&d);

    a=(a+(++b)+(++c))/d;

    printf("\nA=%d",a);

    b=b/6;

    printf(" B=%d",b);

    c=c+(--b)+a++;

    printf(" C=%o",c);

    d=((b&508)&(c&14))>>2;

    printf(" D=%o",d);

    return 0;

}

Результаты: A=3 B=1 C=4 D=0

Вывод: Изменили программу,  использовав для ввода значений переменных функцию scanf. Результаты не изменились


Задание 4:

Описать переменные как автоматические. Вывести их значения до присваивания. Объяснить полученные результаты.

Текст программы:

#include<stdio.h>

main()

{

    auto int a=2,b=5,c=0,d=3;

    printf("A=%d B=%d c=%o D=%o",a,b,c,d);

    a=(a+(++b)+(++c))/d;

    printf("\nA=%d",a);

    b=b/6;

    printf(" B=%d",b);

    c=c+(--b)+a++;

    printf(" C=%o",c);

    d=((b&508)&(c&14))>>2;

    printf(" D=%o",d);

    return 0;

}

Результаты: A=3 B=1 C=4 D=0

Вывод: Описали переменные как автоматические. Вывесли их значения до присваивания.


Задание 5:

Повторить задание 4, разместив все описания в отдельном файле.

Текст программы:

#include<stdio.h>

#include"c:\progra~1\qc2\bin\laba1_51.h"

main()

{

    a=(a+(++b)+(++c))/d;

    printf("\nA=%d",a);

    b=b/6;

    printf(" B=%d",b);

    c=c+(--b)+a++;

    printf(" C=%o",c);

    d=((b&508)&(c&14))>>2;

    printf(" D=%o",d);

    return 0;

}

Текст файла laba1_51.h:

static int a=2,b=5,c=0,d=3;

Результаты: A=3 B=1 C=4 D=0

Вывод: Повторили задание 4, разместив все описания в отдельном файле.


Задание 6:

Повторить задание 1, использовав вместо переменных А, В, С, D статический массив.

Текст программы:

#include<stdio.h>

main()

{

    static int a[4]={2,5,0,3};

    a[0]=(a[0]+(++a[1])+(++a[2]))/a[3];

    printf("\nA=%d",a[0]);

    a[1]=a[1]/6;

    printf(" B=%d",a[1]);

    a[2]=a[2]+(--a[1])+a[0]++;

    printf(" C=%o",a[2]);

    a[3]=((a[1]&508)&(a[2]&14))>>2;

    printf(" D=%o",a[3]);

    return 0;

}

Результаты: A=3 B=1 C=4 D=0

Вывод: Повторить задание 1, использовав вместо переменных А, В, С, D статический массив.

Похожие материалы

Информация о работе

Тип:
Отчеты по лабораторным работам
Размер файла:
38 Kb
Скачали:
0