Задачник и решебник (1087980), страница 13
Текст из файла (страница 13)
Решения107Задача 121// Таблица фун1сции у=|х1#include <stdio.h>#include <conio.h>#include "math.h"#define#define#defineLB -4 ////НВ 4 ////DX 0.5void main О{float х,у;int п;int i;нижняя граница диапазона измененияаргументаверхняя граница диапазона измененияаргумента// приращение аргумента// аргумент и значение функции// кол-во точек// счетчик цикловprintf("ХпТаблица значений функции у=|х| \ п " ) ;п = (НВ - LB)/DX + 1;X = LB;for (i = 1; i <= n; i++){у = fabs(x);printf("%4.2f%3.2f\n", X, y ) ;X +- DX;}printf("\пДля завершения нажмите <Enter>");getch();}Задача 123// Вьшодит таблицу умножения на 7#include <stdio.h>#include <conio.h>void mainO{int m; // число, для которого надо вьгоести// таблицу умножения (множимое)106C/C•^^'^• в задачах и примерахint п;int р;// множитель// произведениеm = 7;printf("ХпТаблица умножения на %i\n", m ) ;for (n = 1; n<=9; n++){p = Ш * n;printf("%ix%i=%i\n", m, n, p ) ;}printf("\пДля завершения нажмите <Enter>");getch();}Задача 124// Квадрат Пифагора - таблица умножения#include <stdio.h>#include <conio.h>void mainO{int i,j; // номер строки и столбца таблицыprintf("");// левая верхняя клетка таблицыfor (j = 1; j <=10; j++) // первая строка - номера// столбцовprintf("%4i",j);printf("\n");for (i = 1; i <=10; i++){printf("%4i",i);for (j - 1; j <= 10; j++)printf("%4i",i*j);printf("\n");}// номер строки// строка таблицыprintf("\пДля завершения нажмите <Enter>");getch();Часть II.
Решения109Задача 125// Вычисление числа "ПИ" с использованием// свойства ряда 1 -1/3 + 1/5 - 1/7 + ...#include <stdio.h>tinclude <conio.h>void main()float x;// член рядаint n;// количество суммируемых членовfloat suirati;// частичная суммаint i;// счетчик циклов// при суммировании достаточно большого (-1000) количества// элементов ряда, значение суммы стремится к "ПИ"/4printf("Вычисление суммы ряда 1 -1/3 + 1/5 - 1/7 + . . . \ п " ) ;printf("Введите кол-во суммируемых членов ряда ->" ) ;scanf("%i", & n ) ;suitim = 0 ;for (i = 1; i <= n; i++){X = (float)l/(2*i - 1 ) ;if ( (i % 2) = 0 ) X = -1 * x;summ +== x;}printf ("Сумма ряда: %2.6f\n", suinm) ;printf("Вычисленное значение " ) ;printf("числа ПИ = %2.6f\n", summ * 4 ) ;printf("\пДля завершения нажмите <Enter>");getch();}Задача 126// Приближенное вычисление интеграла// методом прямоугольников (цикл for)#include <stdio.h>#include <conio.h>110C/C-f-f- в задачах и примерахv o i d main (){float a,b;float dx;float s;int п;float х;float у;int i;////////////границы отрезкаприращение аргументаприближенное значение интегралаколичество интерваловаргументзначение функции в начале интервалаprintf("ХПриближенное вычисление интегралаХп");printf("Нижняя граница интервала -> " ) ;scanf("%f", &а);printf("Верхняя граница интервала -> " ) ;scanf("%f", &b);printf("Приращение аргумента -> " ) ;scanf("%f", &dx);n = (b - a) / dx + 1;X = a;s = 0;for (i = 1; i<=n; i++){у = x*x + 2 ; // значение функции в начале интервалаS += y*dx;X += dx;}printf("Значение интеграла: %6.3f", s);printf("\пДля завершения нажмите <Enter>");getch();}Задача 127// приближенное вычисление интеграла методом трапеций#include <stdio.h>#include <conio.h>void main(){float a,b;// границы отрезкаfloat dx;// приращение аргументаЧасть II.
Решенияfloat s;int п;float х;float у1,у2;int i;111////////приближенное значение интегралаколичество интерваловаргументзначение функции в начале и в концеprintf("ХпПриближенное вычисление интеграла\п")/ргintf("методом трапецийХп");ргintf("Нижняя граница отрезка -> " ) ;scanf("%f", &а);printf("Верхняя граница отрезка -> " ) ;scanf("%f", &b);printf("Приращение аргумента -> " ) ;scanf("%f", &dx);n = (b ~ a) / dx;X = a;s = 0;for (i == 1; i <==n; i++){yl = x*x + 2 ;// значение ф-и в начале интервалаX += dx;у2 = х*х + 2 ;// значение ф-и в конце интервалаS += (у1 + y2)*dx/2;}printf("Значение интеграла: %6.3f", s ) ;printf("\пДля завершения нажмите <Enter>");getchO ;Задача 129// Преобразование десятичного числа в двоичное#include <stdio.h>#include <conio.h>void main()int dec;int v;int i;// десятичное число// вес формируемого разряда// номер формируемого разряда112C/C-f"^ в задачах и примерахprintf("ХпПреобразование десятичного числа в двоичноеХп");printf("Введите целое число от О до 255")/printf ("и нажмите <Enter>");printf("~> " ) ;scanf("%i", &dec);printf("Десятичному числу %i соответствует двоичное ",dec) ;V = 128; // вес старшего (восьмого) разрядаfor (i = 1; i <== 8; i++){if (dec >= v){printf("1");dec -= v;}else printf("0");V = V / 2; // вес следующего разряда в два раза меньше}printf("\п\пДля завершения нажмите <Enter>");getch();}Задача 130// Программа проверяет знание таблицы умножения#include <stdio.h>#include <conio.h>#include <stdlib.h> // для доступа к srand и rand#include <time.h>void main (){int numbl, nu]nnb2; // сомножителиint res;// произведениеint otv;// ответ испытуемогоint kol = 0 ;// количество правильных ответовint i;// счетчик цикловtime_t t;// текущее время - для инициализации// генератора случайных чиселЧасть II.
Решенияprintf("\*** Проверка знания таблицы умножения ***\п");printfC После примера введите ответ и нажмите <Enter>");srand((unsigned) time(&t));; // инициализация генератора// случайных чиселfor (i = 1; i <= 10; i++) // 10 примеров{numbl = rand()%7 + 2 ; / / число от 2 до 9nuinb2 = rand()%7 + 2 ;res = numbl * nurnb2;printf("%ix%i=", numbl, numb2);scanf("%i",&otv);if (otv == res)koH-+;else printf("Bы ошиблись! %1х%1=%±\пПродолжим...\n",numbl, numb2, res) ;}printf("ХпПравильных ответов: %i\n", kol);printf("Ваша оценка: " ) ;switch (kol){case 10: puts("5"); break;9: puts("4"); break;case 8: puts("4"); break;case 7: puts("3"); break;default: puts("2"); break;}printf("\пДля завершения нажмите <Enter>");getch();}Задача 131// Проверка умения складывать и вычитать числаtinclude <stdio.h>#include <conio.h>tinclude <stdlib.h> // для доступа к srand и rand#include <time.h>113114C/C-^-f- в задачах и примерах#define LEVEL 97+2// действия над числами от 2 до 99void main(){int nuitibl, nuinb2; // числаint op;// действие над числами:/ / О - сложение, 1 - вычитаниеchar zop;// знак операции - "плюс" или "минус"int res;// результатint otv;// ответ испытуемогоint kol = 0 ;// количество правильных ответовdint buf;// буфер для обмена пиптЫ и тлт1Ь2,/ / в случае, если numbl<nunib2int i;// счетчик цикловtiine_t t;// текущее время - для инициализации// генератора случайных чиселprintf("ХпПроверка умения складывать и вычитать числаХп");printf("После примера введите ответ и нажмите <Enter>");kol = 0;srand((unsigned) time(&t));; // инициализация генератора// случайных чиселfor (i = 1; i <- 10; i+-b){// сгенерируем примерnurobl = rand О % LEVEL;numb2 = rand О % LEVEL;op = rand()%2;if (op == 0){res = numbl + nuinb2;zop = '+';}else{ // Вычитаниеzop = '- *;i f (nuinbl < numb2)// число от 2 до 99// действие над числами{/ / обменяем numbl и nuinb2Часть II.
Решения115buf = пшпЬ2;nuinb2 == numbl;nurnbl = buf ;}res = пшпЬ1 - nuinb2;}printf("%i%c%i=", numbl, zop, numb2); // вывести пример// получить ответ испытуемогоscanf("%i", &otv)if (otv == res)kol++;else printf("Вы ошиблись. %i%c%i=%i\n",nunuDl, zop, nuinb2, res) ;}printf("Правильных ответов: %i\n", kol);printf("Ваша оценка:\n");switch (kol){case 10 puts("5") breakcase 9puts("4") bireakcase 8puts("4") breakcase 7puts("3") breakdefault puts("2") break}printf("\пДля завершения нажмите <Enter>");getch();Задача 132// Электронные часы#include <stdio.h>#include <conio.h>// для доступа к delay#include "dos.h"void mainO{int inin,sec;// минуты, секундыclrscrO;// очистить экран_setcursortype (_NOCURSOR); // убрать курсорprintf("Чтобы остановить таймер, нажмите любую клавишу");for (min = 0; min <= 2; min++){116C/C-f-f- в задачах и примерахfor (sec = 0; sec <= 59; sec++){delay(1000);// задержка 1000 itisgotoxy(l,3);// курсор в 1~ую колонку 1-ой строкиprintf("%i:%2i", min, sec);if (kbhitO) break;}if (kbhitO) break;}_setcursortype (_NORMALCURSOR);getchO; // клавиша, остановившая часыprintf("\пДля завершения нажмите <Enter>");getch();Задача 133// Вычисление среднего арифметического// последовательности положительных чисел#include <stdio.h>#include <conio.h>void mainO{int a;// число, введенное с клавиатурыint n;// количество чиселint s;// сумма чиселfloat m; // среднее арифметическоеs - 0;n = 0;printf("\Вычисление среднего арифметического");printf("последовательности положительных чисел.\п");printf("Вводите числа.
Для завершения введите ноль.\п");do {printf("-> " ) ;scanf("%i", &a);if (a > 0){s +- a;n++;}Часть II. Решения} w h i l e (а > 0 ) ;printf("Введено чисел: %i\n", п ) ;printf("Сумма чисел: %i\n", s);iti = (float) s / n;printf("Среднее арифметическое: %3.2f", m) ;printf("\п\пДля завершения нажмите <Enter>");getch();Задача 134// Определение максимального числа/ / в последовательности положительных чисел#include <stdio.h>#include <conio.h>void mainO{int a; // очередное числоint m; // максимальное числоputs("\пОпределение максимального числа");puts("последовательности положительных чисел.");puts("Вводите числа. Для завершения введите ноль.");m = 0;do {printf(""> " ) ;scanf("%i", &a);if (a > m) m = a;} while (a > 0);printf("Максимальное число: %i", m ) ;printf("\пДля завершения нажмите <Enter>");getch();Задача 135// Определение минимального числа// последовательности положительных чисел#include <stdio.h>#include <conio.h>117118С/С-*"*- в задачах и примерахv o i d main О{int а;int min;// очередное число// минимальное числоprintf("\nOnpeделение минимального числаХп");printf("в последовательности положительных чисел.\п");printf("Вводите числа.
Для завершения введите ноль.\п");printf("-> " ) ;scanf("%i", &а);min = а;// пусть первое число минимальноеwhile ( а > 0){if (а < min) min = а;printf("-> " ) ;scanf("%i", &a);}printf("Минимальное число последовательности:");printf("%i\n", min);printf("\пДля завершения нажмите <Enter>");getch();Задача 136// Проверяет, является ли число простым#include <stdio.h>#include <conio.h>void mainO{int n; // числоint d; // делительint r; // остаток от деления n на dprintf ("Введите целое число--> " ) ;scanf("%i", &n);d = 2;// сначала будем делить на дваdo {г = n % d;Часть И. Решенияif (г != 0) d++;}while ( г != О ); // пока п не разделится на dif (d == n)printf("%i - простое число" ,n);else printf("%i - не простое число" ,n);printf("\п\пДля завершения нажмите <Enter>");getch();Задача 138// Игра "Угадай число"linclude <conio.h>#include <stdlib.h> // для доступа к srandlinclude <time.h>void mainO{int comp;// задуманное числоint igrok; // вариант игрокаint n;// количество попытокtime_t t;// текущее время - для инициализации// генератора случайных чиселsrand((unsigned) time (&t));comp = randO % 10 +1 ;// число от 1 до 10clrscrО;cprintf("\п\гКомпьютер \"задумал\" число от 1 до\10.\п\г");cprintf("Вы должны его угадать за три попытки.");п = 0;do {cprintf("\n\r->");cscanf("%i",&igrok);n++;} while ((igrok != comp)&&(n < 3));if (igrok == comp){ГУ£120C/C-f-+ в задачах и примерахtextcolor(RED+BLINK);cprintf("\п\гВЫ ВЫИГРАЛИ!");}else{textcolor(GREEN);cprintf("\п\гВы проиграли.);cprintf ("Компьютер задумал число %d",coinp);}textcolor(LIGHTGRAY);cprintf("\п\гДля завершения нажмите любую клавишу...");getch();getch();}Задача 140// Выводит таблицу функции#inclucie <stciio.h>#include <conio.h>void main(){float x,dx;float х1,х2;float у;х1 = -4;х2 = 4;dx = 0.5;X = х1;printf ("printf (" X Iprintf ("while (х < х2) {у = х*х + 2;printf("%3.2fX += dx;}printf ("// аргумент и его приращение// диапазон изменения аргумента// значение функции\п") ;у\п");\п") ;1 %3.2f\n", X, у ) ;\n") ;printf("\пДля завершения нажмите <Enter>");getch ();}Часть II.
Решения121Задача 141// Вычисление числа "Пи"#include <stdio.h>#include <conio.h>void main(){float p;// вычисляемое значение ПИfloat t;// точность вычисленияint n;// номер члена рядаfloat el; // значение члена рядар = 0;п = 1;el = 1; // начальное значениеprintf("ХпЗадайте точность вычисления ПИ -> " ) ;scanf("%f", &t);printf("Вычисление ПИ с точностью %f\n",t);while (el >= t ){el = (float) 1 / (2*n -1);if ((n % 2) == 0)p -= el;else p += el;n4-f;}p = p*4;printf("ХпЗначение ПИ с точностью %f равно %f\n", t, p ) ;printf ("Просуммировано %i членов рядаЛп", n ) ;printf("\пДля завершения нажмите <Enter>");getch();Задача 142// Вычисление наибольшего общего делителя// двух целых чисел (алгоритм Евклида)iinclude <stdio.h>#include <conio.h>void mainO122С/С-*"^ в задачах и примерахint п1,п2;int nod;int г;// числа, НОД которых надо вычислить// наибольший общий делитель// остаток от деления п1 на п2printf("\пВычисление наибольшего общего делителя " ) ;printf("для двух целых чисел.\п");printf("Введите в одной строке два числа " ) ;printf("и нажмите <Enter>");printf("-> " ) ;scanf("%i%i", &nl, &п2);printf("НОД чисел %i и %i - это ", nl, п2);while (nl % п2){г = nl % п2; // остаток от деленияnl = п2;п2 = г;}nod = п2;printf("%i\n", nod);printf("\пДля завершения нажмите <Enter>");getch();}Задача 143// Подсчет ненулевых элементов массива// (доступ к элементам по номеру)#include <stdio.h>#include <conio.h>#define SIZE 5 //void mainO{int a[SIZE];int n = 0;int i;размер массива//массив// кол-во ненулевых эл~тов// индексprintf("\пВведите массив целых чисел.\n");printf("После ввода каждого числа " ) ;printf("нажимайте <Enter>\n");Часть Л.