Операции с одномерными массивами. Использование меню и функций. Сортировка массивов.. Операции с одномерными массивами. Использование меню и функций. Сортировка массивов
Скачать 18.3 Kb.
|
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ ДНР ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЕ «ДОНЕЦКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ» Кафедра электронной техники Отчёт по лабораторной работе № 1 по дисциплине «Компьютерные технологии и программирование» на тему: Операции с одномерными массивами. Использование меню и функций. Сортировка массивов. Студента 1 курса, группы АУП-18 Направление подготовки «Автоматизация технологических процессов и производств» Кудрявцева Кирилла Игоревича Преподаватель кафедры ЭТ Стародубцева Оксана Николаевна Национальная шкала ___________ Кол-во балов _________ECTS_____ Г. Донецк-2018 год Цель работы: Получение навыка программирования операций с одномерными массивами в алгоритмическом языке С, использование функций, изучение методов сортировки.
Код программы #define NMAX 50 #include #include #include void Search(float[], int, char); int SearchAverage(float[], int); void Entermass(float[],int*, float,float,char); void EnterKlav(float[],int*,char); void About(void); void Viewmass(float[],int,char); void main (void) { char ch; randomize(); int na, nb, nc, nd; float a[NMAX],b[NMAX],c[NMAX],d[NMAX]; clrscr(); randomize(); do{ clrscr(); printf("\n\t\t\t\tF1- o programm\n"); printf("\t\t\t\tF2- vvod massiva\n"); printf("\t\t\t\tF3- vivod massiva\n"); printf("\t\t\t\tF4- run process\n"); printf("\t\t\t\tESC-vixod\n"); ch=getch(); if(!ch) ch=getch(); switch(ch) { case 59: About(); getch(); break; case 60: clrscr(); printf("Vvod masiva \n"); char flag; printf("nagmite Y esli xotite vvesti mass s klaviaturyi:"); scanf("%c", &flag); clrscr() ; if(flag!='y') { Entermass(a,&na,-30,50,'A'); Entermass(b,&nb,-18,20,'B'); Entermass(c,&nc,-9,33,'C'); Entermass(d,&nd,-80,-40,'D'); } else { EnterKlav(a,&na,'A'); EnterKlav(b,&nb,'B'); EnterKlav(c,&nc,'C'); EnterKlav(d,&nd,'D'); } getch(); break; case 61: clrscr(); printf("Vivod masiva\n"); Viewmass(a,na,'A');Viewmass(b,nb,'B'); Viewmass(c,nc,'C'); Viewmass(d,nd,'D'); getch(); break; case 62: clrscr(); printf("RUN\n"); printf("do\n"); Viewmass(c,nc,'C'); printf("posle\n");Search(c,nc,'C'); printf("do\n"); Viewmass(a,na,'A'); printf("posle\n");Search(a,na,'A'); float S1=SearchAverage(b,nb);float S2=SearchAverage(d,nd); printf("Srednee B:%8.3f\n", S1); printf("Srednee D:%8.3f\n", S2); printf("Proizvedenie B i D:%8.3f", S1*S2); getch(); break; } } while (ch!=27); } void About(void) { clrscr(); printf("laba1 var 8 zad 16 \n"); printf("sortirovka A i C cheslochnim metodom\ \Proizvedenie sr.arifmetichnih mass B i D\n"); printf("AYP-18 Kudravcev K.I.\n"); } void Entermass(float x[],int*size,float xn,float xk,char c) { int i; clrscr(); printf("Press size(<=%d)for mass %c\n",NMAX,c); scanf("%d",size); for(i=0;i<*size;i++) x[i]=xn+random(1000*(xk-xn+1))/1000.; } void EnterKlav(float x[],int*size,char c) { int i; clrscr(); printf("Press size(<=%d)for mass %c\n",NMAX,c); scanf("%d",size); printf("vvodite mass:\n"); for(i=0;i<*size;i++) scanf("%f",&x[i]); } void Viewmass(float x[],int size,char c) { int i; printf("Mass %c\n",c); for(i=0;i printf("\n"); } int SearchAverage(float x[],int size) { int i; float s=0; for(i=0;i s=s+x[i]; s=s/size-1; return s; } void Search(float x[],int size, char c) {int l, r, i, k; float buf; k=l=0; r=size-2; while(l<=r) { for(i=l;i<=r;i++) if(x[i] { buf=x[i]; x[i]=x[i+1]; x[i+1]=buf; k=i; } r=k-1; for(i=r;i>=l;i--) if(x[i] { buf=x[i]; x[i]=x[i+1]; x[i+1]=buf; k=i; } l=k+1; } Viewmass(x,size,c); } |