Сборник лабораторных работ по компьютерному программированию. Теория компьютерного программирования. Компьютерные науки. Учебно-методическое пособие. Структуры. С++. Адресация. Обработка строк. Сортировка данных. Преобразование данных. Преобразование даты и времени

Решение задач и выполнение научно-исследовательских разработок: Отправьте запрос сейчас: irina@bodrenko.org    
математика, IT, информатика, программирование, статистика, биостатистика, экономика, психология
Пришлите по e-mail: irina@bodrenko.org описание вашего задания, срок выполнения, стоимость



 Компьютерные науки Математика и информатика Векторный и тензорный анализ Теория игр Аналитическая геометрия и линейная алгебра Дифференциальная геометрия и топология Дополнительные главы дифференциальной геометрии Bodrenko.com Bodrenko.org

Bodrenko.com
Bodrenko.org

Учебные дисциплины на сайте Bodrenko.org
Портабельные Windows-приложения на сайте Bodrenko.com
"Геометрические методы математической физики" Компьютерные науки Математика и информатика Векторный и тензорный анализ Теория игр Аналитическая геометрия и линейная алгебра Римановы многообразия Элементы вариационного исцисления Дифференциальная геометрия и топология "Геометрия подмногообразий" Дополнительные главы дифференциальной геометрии "Дифференциальные уравнения на многообразиях" "Дифференциальная геометрия и топология кривых" Bodrenko.com Bodrenko.org

Bodrenko.org


СБОРНИК ЛАБОРАТОРНЫХ РАБОТ ПО 
КОМПЬЮТЕРНОМУ ПРОГРАММИРОВАНИЮ
Кандидат физ.- мат. наук, доцент А.И.Бодренко.
Введение в теорию компьютерного программирования: Учебно-методическое пособие. --- 2011. -- 36 с.
Предлагаемое учебно-методическое пособие соответствует программе университетского курса "компьютерные науки". Оно написано на основе курса лекций, читавшегося автором на математическом факультете Пособие предназначено для студентов младших курсов университетов. © А.И. Бодренко 2011 Все права защищены
Для решения задачи составить программу. В программе предусмотреть ввод и печать исходных данных и печать полученного результата с поясняющим текстом. Использовать циклы для ввода, вывода и обработки массивов. Привести список использованных переменных. Подготовить тесты. Проверить работу программы на ЭBM. Подготовить отчет по каждой программе, показывающий ее работу. Подробно описать 10 --- 15 шагов, распределив их равномерно, включив результат.
1. Преобразование данных. #include <stdio.h> #include <stdlib.h> int main(void) { char input[80], *endptr; double value; printf("Введите число :"); gets(input); value = strtod(input, &endptr); printf("Строка %s число %lf\n", input, value); return 0; } 2. Определение текущего диска. #include <stdio.h> #include <dos.h> /* имя текущего диска 'A', 'B', ... */ char current_drive(void) { char curdrive; /* номер текущего диска 0, 1, ... */ curdrive = bdos(0x19, 0, 0); return('A' + curdrive); } int main(void) { printf("Текущий диск --- %c:\n", current_drive()); return 0;} 3. Преобразование даты и времени. #include <time.h> #include <stdio.h> #include <dos.h> int main(void) { time_t timer; struct tm *tblock; /* время */ timer = time(NULL); /* преобразование даты и времени */ tblock = localtime(&timer); printf("Локальное время : %s", asctime(tblock)); return 0; } 4. Оператор остановки. #include <dos.h> #include <stdio.h> int main(void) { int i; for (i=1; i<5; i++) { printf("Остановка %d секунд \n", i); sleep(i); } return 0;} 5. Графические данные. #include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> int main(void) { int gdriver = DETECT, gmode, errorcode; int i, maxx, maxy; int poly[8]; initgraph(&gdriver, &gmode, \ "c:\\borland\\tc\\bgi"); errorcode = graphresult(); if (errorcode != grOk) { printf("Graphics error: %s\n", \ grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); } maxx = getmaxx(); maxy = getmaxy(); poly[0] = 20; poly[1] = maxy / 2; poly[2] = maxx - 20; poly[3] = 20; poly[4] = maxx - 50; poly[5] = maxy - 20; poly[6] = maxx / 2; poly[7] = maxy / 2; for (i=EMPTY_FILL;i<USER_FILL;i++) {setfillstyle(i, getmaxcolor()); fillpoly(4, poly); getch(); } closegraph(); return 0;} 6. Статический тип (С++). #include<stdio.h> int counter(void) {static int k; return(k+1);} void main(void) {int counter(void); int k=3; for(;k!=0;k--) {printf("auto k=%d",k); printf("Cчетчик %d",counter()); } } 7. Адресация (С++). #include<stdio.h> void main() {unsigned long L=0x12345678L; char*cp=(char*)&L; int*ip=(int*)&L; long*lp=(long*)&L; printf("L=%d,cp:%p,ip:%p lp:%p",L,cp,ip,lp); } 8. Структуры(С++). #include<iostream.h> #include<conio.h> #include<stdio.h> struct base { virtual void vfun (int i) {printf("i=%d",i);}}; struct dir1:public base { void vfun(int i) {printf("i=%d",i);}}; struct dir2 :public base { void vfun (int i) {printf ("i=%d",i);}}; void main (void) {base B,*bp=&B; dir1 D1,*dp1=&D1; dir2 D2,*dp2=&D2; bp->vfun(1); dp1->vfun(2); dp2->vfun(3); bp=&D1;bp->vfun(4); bp=&D2;bp->vfun(5); } 9. Вывод данных. #include <conio.h> int main(void) {int i, j; clrscr(); for (i=0; i<9; i++) {for (j=0; j<80; j++) cprintf("C"); cprintf("\r\n"); textcolor(i+1); textbackground(i);} return 0; } 10. Сортировка данных (С++). #include <stdio.h> #include <stdlib.h> #include <string.h> int sort_function( const void *a, const void *b); char list[5][4] = \ { "cat", "car", "cab", "cap", "can" }; int main(void) { int x; qsort((void *)list, 5, \ sizeof(list[0]), sort_function); for (x = 0; x < 5; x++) printf("%s\n", list[x]); return 0; } int sort_function( const void *a, const void *b) {return( strcmp((char *)a,(char *)b) ); } 11. Обработка строк(С++). #include <stdlib.h> #include <stdio.h> int main(void) { char str[25]; double num; int sig = 5; num = 9.876; gcvt(num, sig, str); printf("string = %s\n", str); num = -123.4567; gcvt(num, sig, str); printf("string = %s\n", str); num = 0.678e5; gcvt(num, sig, str); printf("string = %s\n", str); return(0); } 12. Определение текущего пути (С++). #include <stdio.h> #include <stdlib.h> #include <alloc.h> #include <string.h> #include <dos.h> int main(void) { char *path, *ptr; int i = 0; ptr = getenv("PATH"); path=(char*)malloc(strlen(ptr)+15); strcpy(path,"PATH="); strcat(path,ptr); strcat(path,";c:\\temp"); putenv(path); while (environ[i]) printf("%s\n",environ[i++]); return 0;} \S5 Гистограммы. 9. Построить ромб, диагонали которого равны А и В. Ромб расположить так, чтобы одна из диагоналей располагалась горизонтально. #include<graphics.h> #include<stdio.h> #include<conio.h> main() {int i,j,h,i1=0,k,q,z,a,b; float a1,a2,x,y; initgraph(&i1,&i1,"d:\\borland\\tc\\bgi"); a1=getmaxx()/2; a2=getmaxy()/2; line(0,a2,2*a1,a2); line(a1,0,a1,2*a2); h=20;k=a2/h; setcolor(233); for(i=0;i<=k;i++) {line(a1+i*h,a2+5,a1+i*h,a2-5); line(a1-5,a2-i*h,a1+5,a2-i*h);} printf("q="); scanf("%d",&q); printf("z="); scanf("%d",&z); printf("a="); scanf("%d",&a); printf("b="); scanf("%d",&b); {line(q+a/2,z,q-a/2,z); line(q,z+b/2,q,z-b/2);} {line(q+a/2,z,q,z+b/2); line(q+a/2,z,q,z-b/2); line(q-a/2,z,q,z+b/2); line(q-a/2,z,q,z-b/2);} getch();} 12. Построить прямоугольную трапецию (высота - Н, основания --- А и В). Основания расположить горизонтально. #include<stdio.h> #include<graphics.h> #include<math.h> main() {int i1=0,A,B,H; float x0,y0; initgraph(&i1,&i1,"d:\\borland\\tc\\bgi"); x0=150; y0=150; A=20;B=40;H=15; line(x0,y0,x0+B,y0); line(x0+B,y0,x0+B,y0-H); line(x0+B,y0-H,x0+B-A,y0-H); line(x0+B-A,y0-H,x0,y0); getch(); closegraph(); } 13. Построить параллелограмм со сторонами А и В. Сторона А расположена горизонтально. #include<graphics.h> #include<stdio.h> #include<math.h> main() {int il=0; float a1,a2,A,B; printf("Введите числа:\n"); printf("A="); scanf("%f",&A); printf("B="); scanf("%f",&B); initgraph(&il,&il,"d:\\borland\\TC\\BGI"); a1=getmaxx()/2; a2=getmaxy()/2; {line(0.5*a1,0.5*a2,0.5*a1+A,0.5*a2); line(0.5*a1+A,0.5*a2,0.5*a1+A+B/2, \ 0.5*a2+sqrt(3)/2*B); line(0.5*a1+A+B/2,0.5*a2+sqrt(3)/2*B, \ 0.5*a1+B/2,0.5*a2+sqrt(3)/2*B); line(0.5*a1+B/2,0.5*a2+sqrt(3)/2*B, \ 0.5*a1,0.5*a2);} getch(); closegraph(); } 14. Построить правильный шестиугольник со стороной А. Две стороны расположены горизонтально. #include<conio.h> #include<graphics.h> #include<stdio.h> #include<stdlib.h> main() { int i1=0; float a1,a2; initgraph(&i1,&i1,"d:\\borland\\bc\\bgi"); { setcolor(2); a1=getmaxx()/2;a2=getmaxy()/2; line(150,a2*2-150,2*a1-15,a2*2-150); line(150,0,150,2*a2-150); line(-22,450,150,328);} setcolor(GREEN); line(200,200,250,250); line(200,200,250,150); line(250,150,320,150); line(320,150,370,200); line(370,200,320,250); line(320,250,250,250); setpalette(0,20); printf("\nнажмите любую"); printf("\nклавишу"); getch(); closegraph(); return 0; } 15. Построить правильный шестиугольник со стороной А. Две стороны расположены вертикально (A=5). #include<graphics.h> #include<stdio.h> #include<conio.h> #include<math.h> #include<stdlib.h> main() { int i,j,h,il=0,k; int a[16]={5,8,5,24,8,4, \ 25,9,14,5,18,25,5,8,25,10}; float a1,a2,x,y,x0,y0; initgraph(&il,&il,"d:\\borland\\bc\\bgi"); a1=getmaxx()/2; a2=getmaxy()/2; line(0,a2+139,1.5*a1,a2+139); line(20,0,20,2*a2); h=20; k=a2/h; for(i=0;i<=3*k;i++) { line(2*a2-7-i*h*2/3,a2+144,2*a2-7-i*h*2/3,a2+134); line(15,2*a2-7-i*h*2/3,25,2*a2-7-i*h*2/3); } outtextxy(5,a2+145,"0"); outtextxy(getmaxx()/2-a1+17,0,"^"); outtextxy(1.5*a1-6,a2+135,">"); outtextxy(1.5*a1-6,a2+145,"x"); outtextxy(getmaxx()/2-a1+6,0,"y"); outtextxy(a1,10,"VICTORY"); outtextxy(20+5*h*2/3,a2+145,"5"); outtextxy(20+10*h*2/3,a2+145,"10"); outtextxy(20+15*h*2/3,a2+145,"15"); outtextxy(20+20*h*2/3,a2+145,"20"); outtextxy(20+25*h*2/3,a2+145,"25"); outtextxy(20+30*h*2/3,a2+145,"30"); outtextxy(0,2*a2-7-12*h*2/3,"5"); outtextxy(0,2*a2-7-17*h*2/3,"10"); outtextxy(0,2*a2-7-22*h*2/3,"15"); outtextxy(0,2*a2-7-27*h*2/3,"20"); outtextxy(0,2*a2-7-32*h*2/3,"25"); x0=100; y0=100; {line(x0,y0,x0+sqrt(3*(h*5*2/3)*(h*5*2/3)/4), \ y0+h*5*2/6); line(x0+sqrt(3*(h*5*2/3)*(h*5*2/3)/4),\ y0+h*10/6,x0+sqrt(3*(h*5*2/3)*(h*5*2/3)/4), \ y0+3*h*5*2/6); line(x0+sqrt(3*(h*5*2/3)*(h*5*2/3)/4), \ y0+3*h*5*2/6,x0,y0+2*h*5*2/3); line(x0,y0+20*h/3, \ x0-sqrt(3*(h*10/3)*(h*10/3)/4),y0+3*h*5*2/6); line(x0-sqrt(3*(h*10/3)*(h*10/3)/4), \ y0+30*h/6,x0-sqrt(3*(h*10/3)*(h*10/3)/4), \ y0+h*5*2/6); line(x0-sqrt(3*(h*10/3)*(10*h/3)/4), \ y0+h*5*2/6,x0,y0); putpixel(a1+h*x,a2+h*y,RED); } getch(); closegraph(); } \S6. Практическое программирование(ч.2). 1. Информация о количестве выладавщих в течение месяца осадков задана в виде массива. Определить общее количество осадков за месяц. #include<conio.h> #include<stdio.h> main() { float a[30]={2,4,3,5,6,6,6,7,8,7,4,4, \ 4,4,4,3,3,3,3,2},s; int i; s=0; clrscr(); printf("\ n \ t Ищем количество осадков за 30 дней.\\ \ \n Введите 30 чисел:\n"); for(i=1;i<=30;i++) {printf(" осадки "); printf("%d",i); printf(" числа: "); printf("%f\n",a[i]); } for(i=1;i<30;i++) s=s+a[i]; printf("Общая сумма осадков за 30 дней:%f\n",s); getch(); } 2. Информация о температуре воздуха за неделю задана в массиве. Определить, сколько раз температура опускалась ниже 0. #include<stdio.h> #include<conio.h> #include<math.h> #define KO 7 main() {int mas[KO]={1,-3,4,-8,0,-3,-8},s,i,j; clrscr(); printf("\n Температура воздуха за неделю:"); for(i=0;i<KO;i++) printf("%5d",mas[i]); printf("\n"); printf("\n Температура воздуха ниже нуля:"); for(i=0;i<7;i++) {if(mas[i]<0) printf("%5d", mas[i]); }j=0; for(i=0;i<7;i++) {if(mas[i]<0) j=1+j; } printf("\n Кол-во дней с температурой ниже нуля:"); printf("%5d",j); } 3. Информация о средней суточной температуре воздуха месяц задана в виде массива. Определить, температура сколько дней была ниже среднемесячной. #include<conio.h> #include<stdio.h> #include<math.h> main() {int i,s; float x[30]={0,20,3,4,5,6,6,6,6,2,2,2,2,2,1, \ 1,1,1,1,4,4,4,4,4,3}, y; clrscr(); printf("введите 30 чисел:\n"); for(i=1;i<=30;i++) {printf("температура "); printf("%d",i); printf("числа:"); printf("%f\n",x[i]);} y=0; for(i=1;i<=30;i++) y=y+x[i]; y=y/30; printf("среднемесечная температура:"); printf("y=%f",y); s=0; for(i=1;i<=30;i++) {if(y>x[i]) {s=s+1;}} printf("\n\кол-во дней:\s=%d",s); getch(); } 5. Информация о количестве осадков, выпадавших в течении месяца, и о температуре воздуха задана в виде двух массивов. Составить программу, выполняющую эту операцию. #include<stdio.h> #include<conio.h> #include<math.h> main() { int i,k; float a[30],b[30]; for(i=0;i<=29;i++) {printf("\n\t введите кол-во осадков за %d день : ",i+1); scanf("%f",&a[i]); } for(k=0;k<=29;k++) { printf("\n\t введите температуру за %d день: ",k+1); scanf("%f",&b[k]); } printf("\n кол-во осадков за месяц: \n "); for(i=0;i<=29;i++) {printf("%d день : %f",i+1,a[i]); printf("\n"); } printf("\n температура за менсяц: \n "); for(k=0;k<=29;k++) {printf("%d день : %f",k+1,b[k]); printf("\n"); } getch(); } 6. Вес обучающихся в группе представлен в виде массива. Вес студенток кодируется знаком +, вес студентов знаком -. Определить средний вес студентов. #include<conio.h> #include<stdio.h> #include<math.h> main() { int i,m; float max[10],c; clrscr(); printf("введите вес студента\n"); m=0; for(i=0;i<=9;i++) {printf("s%d=",i); scanf("%f",&max[i]); m=(abs(max[i])+m); } c=m/10; printf("средний вес"); printf("%f",c); getch(); } 9. Результаты переписи населения хранятся в памяти ЭВМ. Используя массивы фамилий и года рождения, напечатать фамилии и подсчитать общее число жителей, родившихся раньше 1928 года. #include<stdio.h> #include<conio.h> #include<math.h> main() { int i,c,h[10]; int b[10]; char *a; clrscr(); for(i=0;i<=9;i++) {printf("\n\t введите фамилию человека "); scanf("%s",b[i]); } for(i=0;i<=9;i++) {printf("год"); scanf("%d",&h[i]);} printf("Список родившихся до1928 "); c=0; for(i=0;i<=9;i++) {if(h[i]<1928) {printf(" %s ",b[i]); c=c+1;}} printf("\n кол-во родившихся до 1928:"); {printf("%d",c);} getch(); } 11. Задан список участников соревнований по плаванию и их результаты. Напечатать фамилию и результат чемпиона. #include<conio.h> #include<math.h> #include<stdio.h> main() {int i,n; clrscr(); printf("Введите количество участников,n="); scanf("%d",&n); {char *fam[15]={"Иванов","Петров","Фео","Ама","Веф"}; float r[15]={4.2,1.2,2.4,5.7,2.1}; float min; int nmin; printf("Введем фамилии и их результаты:\n"); for(i=0;i<n;i++) {printf("%d. %s----%f \n",i+1,fam[i],r[i]);} min=r[0]; nmin=0; for(i=0;i<n;i++) {if(r[i]<min) {min=r[i]; nmin=i;}} printf("\tЧемпион:r%d=%f --- %s",nmin+1,min,fam[nmin]);} } 12. В памяти ЭВМ хранится информация о валовом сборе урожая по районам отдельно за 1984 и 1985 гг. Определить суммарный сбор зерна по каждому району за 2 года. #include<stdio.h> #include<conio.h> #include<math.h> #include<stdlib.h> main() {int i,j; int mas[5][2],s[5]; clrscr(); mas[0][0]=18;mas[0][1]=39; mas[1][0]=29;mas[1][1]=30; mas[2][0]=36;mas[2][1]=10; mas[3][0]=75;mas[3][1]=20; mas[4][0]=70;mas[4][1]=15; printf("\n кол-во зерна по районам за два года:"); printf("\n 1984 1985"); printf("\n район 1");printf("\n район 2"); printf("\n район 3");printf("\n район 4"); printf("\n район 5"); for(i=0;i<2;i++) for(j=0;j<5;j++) {gotoxy(10+i*14,4+j); printf("%5d",mas[j][i]); } printf("\n Суммарный сбор зерна за два года:"); for(j=0;j<5;j++) {s[j]=mas[j][0]+mas[j][1]; printf("\n pайон %d %5d",j+1,s[j]);} } 14. Фамилии участников соревнований по фигурному катанию для короткой программы расположены в порядка, соответстощем занятому месту. Составить список участников в порядке стартовых номеров для произвольной программы (участники выступают в порядке, обратном занятым местам). #include<stdio.h> #include<conio.h> #include<math.h> main() { int i,c,h[10],l; char *b[10]; char *a; clrscr(); printf("\Ввудите кол-во участников: "); scanf("%d",&l); for(i=1;i<=l;i++) {printf("\n\t введите фамилию человека: "); scanf("%s",*b[i]); } printf("порядок выступления участников:"); for(i=l;i>=1;i--) {printf("\n %s \n ",*b[i]); } getch(); } 15. При поступленни в институт лица, получившие двойку на первом экзамене, ко второму экзамену не допускаются. Считая фамилии абитуриентов и их оценки после первого экзамена исходными данными, составить список абитуриентов, допущенных ко второму экзамену. #include<stdio.h> #include<conio.h> #include<math.h> main() { int i; int b[5]; char *a; clrscr(); for(i=0;i<=4;i++) {printf("\n\t введите фамилию абитуриента "); scanf("%s",a[i]); } for(i=0;i<=4;i++) { printf("\n\t введите оценку "); scanf("%d",&b[i]); } printf(" список абитуриентов, допущенных ко второму экзамену: "); for(i=0;i<=4;i++) {if(b[i]>2) {printf(" \n %s \n ",a[i]); }} getch(); } % \S7. Практическое программирование(ч.3). 6. Составить программу для ведения протокола баскетбольной игры. Во время игры машина ведет учет набранных очков и фолов каждого игрока. Игрок, получивший 5 фолов, удаляется из игры (эта информация должна появляться на экране). В конце игры должна выводиться информация о сумме очков, набранных каждым игроком, в порядке убывания. #include<stdio.h> #include<conio.h> #include<math.h> main() { int i,j,c,m,n,h[5],s[5],r[5]; int b[5]; char *a; clrscr(); for(i=0;i<=4;i++) {printf("\n\t введите фамилию человека "); scanf("%s",b[i]); c=0; printf("очки:"); for(j=0;j<=4;j++) {scanf("%d",&h[j]); c=c+h[j];} s[i]=c; printf("фолы:"); scanf("%d",&r[i]);} printf("удалены:"); for(i=0;i<=9;i++) {if(r[i]>5) {printf(" %s ",b[i]);}} for(i=1;i<=4;i++) {m=s[i-1]; n=b[i-1]; for(j=i;j<=4;j++) {if(m<s[j]) {s[i-1]=s[j]; b[i-1]=b[j]; s[j]=m; b[j]=n; m=s[i-1]; n=b[i-1];}}} for(i=0;i<=4;i++) {printf("%s",b[i]); printf(":"); printf("%d",s[i]); printf(".");} getch(); } 13. Сформировать из матрицы A(1O,10) матрицу B(10, 10) по следующим правилам: а) элементы матриц А и В принимают только значения О или 1; б) соседями элемента $a_{ij}$ считаются все элементы, расположенные рядом с данным по горизонтали, вертикали или диагонали; в) если сумма S значений соседей элемента меньше двух или больше трех, то $b_{ij}=0;$ г) если сумма S значений соседей элемента $a_{ij}$ равна двум, то $b_{ij}=1;$ д) если сумма 5 значений соседей элемента aij равна трем, то $b_{ij}=1;$ По окончании формирования матрицы В значения элементов построчно вывести на печать. #include<stdio.h> #include<conio.h> #include<math.h> main() { int i,j; int a[10][10]={{1,0,},{1,1},{0,1},\ {1,1},{1,1},{0,0,1,1,0,0,1,1,1}, {0,0},{1,1},{1,1},{1,1}}, b[10][10] ,c[10][10]; clrscr(); for(i=0;i<=9;i++) { for(j=0;j<=9;j++) {printf("%d ",a[i][j]);} printf("\n");} printf("\n");getch(); for(i=1;i<=9;i++) { for(j=1;j<9;j++) {c[i][j]=a[i-1][j-1]+a[i-1][j]+a[i-1][j+1]+ \ a[i][j-1]+a[i][j+1]+a[i+1][j-1]+ \ a[i+1][j]+a[i+1][j+1]; }} for(i=1;i<9;i++) { c[i][0]=a[i-1][0]+a[i+1][1]+a[i][1]+ \ a[i-1][1]+a[i+1][0]; c[i][9]=a[i-1][8]+a[i-1][9]+a[i][8]+ \ a[i+1][8]+a[i+1][9]; } for(j=1;j<9;j++) { c[0][j]=a[0][j-1]+a[0][j+1]+ \ a[1][j-1]+a[1][j]+a[1][j+1]; c[9][j]=a[8][j-1]+a[8][j]+ \ a[8][j+1]+a[9][j-1]+a[9][j+1];} c[0][0]=a[0][1]+a[1][1]+a[1][0]; c[9][9]=a[8][9]+a[8][8]+a[9][8]; c[0][9]=a[0][8]+a[1][8]+a[1][9]; c[9][0]=a[8][0]+a[8][1]+a[9][1]; for(i=0;i<10;i++) {for(j=0;j<10;j++) {printf("%d ",c[i][j]);} printf("\n");} printf("\n"); getch(); for(i=0;i<10;i++) { for(j=0;j<10;j++) { if((c[i][j]<2)||(c[i][j]>3)) b[i][j]=0; else b[i][j]=1; } } for(i=0;i<10;i++) { for(j=0;j<10;j++) {printf("%d ",b[i][j]); } printf("\n");} } \S8. Практическое программирование(ч.4). 4. В соревнованиях участвуют три команды по 6 человек. Результаты соревнований в виде мест участников каждой команды (1-18) размещены в трех массивах, содержащих по 6 компонент. Определить команду --- победителя, вычислив количество баллов, набранное каждой командой. Участнику, занявшему 1-е место, начисляется 5 баллов, 2-е --- 4, 3-е --- 3, 4-е --- 2, 5-е --- 1, остальным - О баллов. Определение числа баллов, набранных одной командой, осуществлять в подпрограмме. #include<stdio.h> #include<conio.h> #include<math.h> int swap(int t[]) { int i,s; s=0; for(i=0;i<=5;i++) s=s+t[i]; return(s); } main() { int sum,s[3],sa,b1[6],c1[6],a1[6],sc,sb, \ a[6]={1,2,3,4,5,6}, b[6]={1,2,3,6,6,6}, \ c[6]={1,2,1,1,1,1}, i; {printf(" результаты 1-ой команды:"); printf("\n");} for(i=0;i<=5;i++) { printf(" место %d участника команды: %d", \ i+1,a[i]); printf("\n");} {printf(" результаты 2-ой команды:"); printf("\n");} for(i=0;i<=5;i++) {printf(" место %d участника команды: %d", \ i+1,b[i]); printf("\n"); } {printf(" результаты 3-ей команды:"); printf("\n");} for(i=0;i<=5;i++) { printf(" место %d участника команды: %d", \ i+1,c[i]); printf("\n"); } for(i=0;i<=5;i++) { a1[i]=6-a[i] ; b1[i]=6-b[i];} for(i=0;i<=5;i++) {c1[i]=6-c[i]; } for(i=0;i<=5;i++) {printf("a1[%d]=%d ",i+1,a1[i]); } printf("\n"); for(i=0;i<=5;i++) { printf("b1[%d]=%d ",i+1,b1[i]); } printf("\n"); for(i=0;i<=5;i++) printf("c1[%d]=%d ",i+1,c1[i]); sa=swap(a1); printf("\n"); printf(" s1=%d", sa); sb=swap(b1); printf(" s2=%d", sb); sc=swap(c1); printf( " s3=%d", sc); s[1]=sa; s[2]=sb; s[3]=sc; for(i=0;i<3;i++) { if(s[i]>s[0]) sum=i+1; } printf("\n"); printf(" победа : %d команда ",sum); }
СБОРНИК ЗАДАЧ ПО
КОМПЬЮТЕРНОМУ ПРОГРАММИРОВАНИЮ



Учебно-методическое пособие



Бодренко Андрей Иванович