Классы хранения и видимости переменных

Автор работы: Пользователь скрыл имя, 14 Января 2012 в 15:19, контрольная работа

Краткое описание

Цель: Ознакомиться с классами хранения, областью видимости и временем жизни программных объектов.

Содержимое работы - 1 файл

ОАИП КР1. Мироненко Т.В.docx

— 18.33 Кб (Скачать файл)

УЧРЕЖДЕНИЕ  ОБРАЗОВАНИЯ

БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ  УНИВЕРСИТЕТ

ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ 

Факультет непрерывного и дистанционного обучения

Специальность: информационные системы и технологии в экономике 
 
 
 
 
 
 
 
 
 
 
 
 
 

Контрольная работа №2

по  предмету

«Основы алгоритмизации и  программирования» 
 

Мироненко Татьяна Владимировна

                                           Группа 902321

                                           Зачетная книжка 902321-26

Электронный адрес: mironenko1907@mail.ru

 
 

КЛАССЫ  ХРАНЕНИЯ И ВИДИМОСТЬ  ПЕРЕМЕННЫХ 

    Цель: Ознакомиться с классами хранения, областью видимости и временем жизни программных объектов. 
 
 

Варианты  индивидуальных заданий

    26. Разработать программу вывода упорядоченного по году поступления списка студентов-отличников, предусмотрев ввод исходной информации о четырех студентах: фамилия и инициалы, год рождения, год поступления в БГУИР, оценки за первый семестр по предметам: физика, высшая математика, информатика. 

    //kr1_2.cpp использовать только с файлом "my_lib.cpp"

    #include "my_lib.cpp"

    /*

          Разработать программу  вывода упорядоченного по году поступления

          списка студентов-отличников, предусмотрев ввод исходной информации

          о четырех студентах: фамилия и инициалы, год рождения, год поступления

          в БГУИР, оценки за первый семестр по предметам: физика,

          высшая математика, информатика.

    */ 

    main()

    {

    register int N, i;

    //Ввод  массива структур 

          printf("Введите количество студентов записываемых в список: ");

          scanf("%d", &N);

          spisok = new (struct BSUIR[N]);

       for(i = 0; i < N; i++)

                vvod_struct(spisok, i);

       clrscr();

          printf("|------------СПИСОК студентов БГУИР до сортировки-------------|\n");

          vivod_struct(spisok, N);

          shell_sort(spisok, N);          //сортировка

          printf("|------------СПИСОК студентов БГУИР до сортировки-------------|\n");

          vivod_struct(spisok, N);

          delete(spisok); 

    return 0;

    } 
 
 
 
 
 
 
 
 
 
 

    Файл «my_lib.cpp»

    #include <stdio.h>

    #include <stdlib.h>

    #include <conio.h> 

    typedef struct BSUIR{

          char  *FIO;        //Фамилия и инициалы

          int   year_god;    //Год рождения

          int  year_post;   //Год поступления

          float   ocenka_ph; //Оценка по физике

          float   ocenka_VM;  //Оценка по высшей математике

       float ocenka_inf;  //Оценка по информатике

          } student;      //имя типа 

    static student *spisok; 

    /*void vvod_struct(student *mass, int size);

    void vivod_struct(student *mass, int size);

    void shell_sort(student *mass, int size);*/

    void swap(int *x,int *y); 

    //Функция ввода структуры

    extern void vvod_struct(student *mass, int p)

    {

    int i;

          flushall();

          mass[p].FIO =(char *) malloc(20);

          printf("ФИО студента %d: ", p+1);

          gets(mass[p].FIO);

          printf("Год рождения студента %d: ", p+1);

          scanf("%d",&mass[p].year_god);

          printf("Год поступления студента %d: ", p+1);

          scanf("%d",&mass[p].year_post);

       printf("Оценка по физике студента %d: ", p+1);

          scanf("%f",&mass[p].ocenka_ph);

          printf("Оценка по высшей математике студента %d: ", p+1);

          scanf("%f",&mass[p].ocenka_VM);

          printf("Оценка по информатике студента %d: ", p+1);

          scanf("%f",&mass[p].ocenka_inf);

          printf("\n");

    }

    //функция  вывода структуры на экран

    extern void vivod_struct(student *mass, int size)

    {

    int i;

          printf("|-------------------------------------------------------------|\n");

       printf("| № |        ФИО         |Год рожд.|Год пост.|Физ.| ВМ |Информ|\n");

          for(i = 0; i < size; i++)

                {

                printf("|%3d|%20s|%9d|%9d|%4.1f|%4.1f|%6.1f|\n", i+1,

                            mass[i].FIO, mass[i].year_god, mass[i].year_post,

                            mass[i].ocenka_ph, mass[i].ocenka_VM, mass[i].ocenka_inf);

                free(mass[i].FIO);

                }

    } 
 

    void swap(student *x,student *y)

    {

    student temp;  

          temp = *x;

          *x = *y;  

          *y = temp;

    } 

    extern void shell_sort(student *mass, int size)

    {

    int i,j;     //две переменные цикла        

    int gap;     //шаг сортировки    

    int sorted;  //флаг окончания этапа сортировки 

          for(gap = size/2; gap > 0; gap /= 2)//начало сортировки

          do

             {

          sorted = 0;

          for(i = 0,j = gap; j < size; i++, j++)

                      if(mass[i].year_post > mass[j].year_post)

                            {

                            swap((mass + i), (mass + j));

                sorted = 1;

                }

                }

          while(sorted);

    }

Информация о работе Классы хранения и видимости переменных