Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мой сборник 2014-2015.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

1. Есептің блок-схемасы

Полотно 82

2. Бағдарламаның листингі

#include <iostream.h>

#include <stdio.h>

#include <math.h>

#include <conio.h>

void main()

{ int n = 1, k, x;

float s1 = 0, s2 = 0, s3 = 0;

FILE *save;

save = fopen("save2.txt", "w");

cout << "Enter k, please ";

cin >> k;

cout << "Enter x, please ";

cin >> x;

while (n <= k)

s1 += (pow(-1, n) * x)/n++;

n = 1;

do

s2 += (pow(-1, n) * x)/n++;

while (n <= k);

n = 1;

for (n = 1; n <= k; n++)

s3 += (pow(-1, n) * x)/n;

printf("s1 = %f, s2 = %f, s3 = %f", s1, s2, s3);

fprintf(save, "k = %d, x = %d, s1 = %f, s2 = %f, s3 = %f", k, x, s1, s2, s3);

fclose(save);

getch();

}

3. Бағдарламаның нәтижесі

k = 10, x = 0, s1 = 0.000000, s2 = 0.000000, s3 = 0.000000

k = 3, x = 7, s1 = -5.833333, s2 = -5.833333, s3 = -5.833333

k = 1, x = 2, s1 = -2.000000, s2 = -2.000000, s3 = -2.000000

2 тапсырма. #include <stdio.h>

int main(void) {

double x, y; /* координаты точки */

/* ввод координат */

printf("Введите координату x >");

scanf("%lf",&x);

printf("Введите координату y >");

scanf("%lf",&y);

/* вывод только что введенных значений */

printf("x=%6.3lf; y=%6.3lf\n",x,y);

/* проверка условий */

if ( (y>=1-x)

&& (x*x+y*y<=1) )

printf("Точка попадает в область\n");

else printf("Точка не попадает в область\n");

return 0;

}

Бағдарламаның нәтижесі:

x=0.400; y=0.400

Точка не попадает в область

x= 0.500; y= 0.500

Точка попадает в область

x= 0.700; y= 0.600

Точка попадает в область

x= 0.707; y= 0.707

Точка попадает в область

x= 0.800; y= 0.800

Точка не попадает в область

x= 0.100; y= 0.000

Точка попадает в область

x= 0.000; y= 1.000

Точка попадает в область

2. #include<stdio.h>

#define S 9

int Ar[S][S]; /* матрица */

int main(void) {

short l, r; /* текущиеиндексы */

short r1,r2; /* граничные номера столбцов */

short dd; /* модификатор граничных номеров */

short k; /* текущий член ЛП */

/* начальные значения переменных */

r1=1; r2=S-2; dd=1; k=1;

for (l=0; l<S; l++) { /* перебор строк */

for (r=0; r<S; r++) /* перебор столбцов */

/* условие ненулевого значения */

if ((r<r1)||(r>r2)) Ar[l][r]=0;

else Ar[l][r]=k++;

/* конец перебора строк */

/* модификация границ */

r1+=dd; r2-=dd;

/* уловие перехода в нижнюю часть */

if (r1>r2) dd=-dd;

} /* конец перебора столбцов */

/* вывод матрицы */

for (l=0; l<S; l++) {

for (r=0; r<S; r++) {

printf("%3d",Ar[l][r]);

}

printf("\n");

}

return 0;

}

Бағдарламаның нәтижесі:

0 1 2 3 4 5 6 7 0

0 0 8 9 10 11 12 0 0

0 0 0 13 14 15 0 0 0

0 0 0 0 16 0 0 0 0

0 0 0 0 0 0 0 0 0

0 0 0 0 17 0 0 0 0

0 0 0 18 19 20 0 0 0

0 0 21 22 23 24 25 0 0

0 26 27 28 29 30 31 32 0

3 тапсырма .#include <stdio.h>

#include <math.h>

int main(void) {

long n; /* параметрряда */

double dbln; /* параметр ряда в форме с плавающей точкой */

double sum=0; /* сумма членов ряда */

double term; /* значение текущего члена */

const double eps=0.000001; /* пределточности */

long k2=1; /* pow(2,n)*/

short k1=1; /* pow(-1,n)*/

/* основной цикл; в модификациях вычисляются

следующие значения pow(2,n) и pow(-1,n)*/

for (n=0; ; n++, k2*=2, k1=-k1) {

/* преобразование n в форму с плавающей точкой */

dbln=n;

/* вычисление очередного члена */

term=k1*(dbln+1)/(dbln*dbln+k2);

/* проверка достижения предела точности */

if (fabs(term)>=eps)

/* если не достигнут - накопление суммы */

sum+=term;

/* если достигнут - выход из цикла */

else break;

/* если 10 членов - вывод суммы */

if (n==9)

printf("Сумма 10 членов ряда = %10.7lf\n",sum);

}

/* конец основного цикла */

/* вывод окончательной суммы */

printf("Полная сумма ряда = %10.7lf\n",sum);

return 0;

} /* конец программы */

Бағдарламаның нәтижесі:

Сумма 10 членов ряда = 0.5600899

Полная сумма ряда = 0.5663245

4 тапсырма.#include <stdio.h>

#include <string.h>

/* Описание структуры, которая представляет монастырь */

struct mon {

char name[15]; /* название */

char sc; /* школа */

int cnt; /* количество монахов */

float sq; /* площадь */

} mm[10]; /* определение массива монастирей */

int main(void) {

struct mmm x; /* рабочая переменная */

int n; /* количество элементов в массиве */

int i, j; /* текущие индексы в массиве */

int m; /* индекс минимального элемента */

float sqx;/* рабочая переменная */

/* Ввод данных */

for (n=0; n<10; n++){

printf("%d. Введите: название, школу, количество, площадь >",

n+1);

scanf("%s",mm[n].name);

if (!strcmp(mm[n].name,"***")) break;

scanf("%s",&mm[n].sc);

scanf("%d",&mm[n].cnt);

/* Внимание! Мы обходим ошибку в системе программирования */

scanf("%f",&sqx); mm[n].sq=sqx;

}

/* Выводтаблицы */

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

printf("|БуддийськемонастыриЯпонииперiодаНара |\n");

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

printf("| Название | Школа |Количество| Площадь |\n");

printf("| | | монахов | земель(га) |\n");

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

/* вывод строк фактических данных */

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

printf("| %9s | %c | %3d | %-5.1f |\n",

mm[i].name,mm[i].sc,mm[i].cnt,mm[i].sq);

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

/* сортировкамассива */

for (i=0; i<n-1; i++) {

m=i; /* минимальный элемент - первый */

for (j=i+1; j<n; j++)

/* если текущий элемент > минимального,

он становится минимальным */

if (strcmp(mm[m].name,mm[j].name)>0) m=j;

if (m>i) {

/* перестановка первого и минимального элементов */

strcpy(x.name,mm[i].name); x.sc=mm[i].sc;

x.cnt=mm[i].cnt; x.sq=mm[i].sq;

strcpy(mm[i].name,mm[m].name); mm[i].sc=mm[m].sc;

mm[i].cnt=mm[m].cnt; mm[i].sq=mm[m].sq;

strcpy(mm[m].name,x.name); mm[m].sc=x.sc;

mm[m].cnt=x.cnt; mm[m].sq=x.sq;

}

}

/* Выводтаблицы */

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

printf("|БуддийськемонастыриЯпонииперiодаНара |\n");

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

printf("| Название | Школа |Количество| Площадь |\n");

printf("| | | монахов | земель(га) |\n");

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

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

printf("| %9s | %c | %3d | %-5.1f |\n",

mm[i].name,mm[i].sc,mm[i].cnt,mm[i].sq);

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

return 0;

}

Бағдарламаның нәтижесі:

1. Введите: название, школу, количество, площадь > Тодайдзи Т 220 368.8

2. Введите: название, школу, количество, площадь > Якусидзи С 50 54.7

3. Введите: название, школу, количество, площадь > Дайаедзи Д 10 12.2

-----------------------------------------------

|Буддийские монастыри Японии периода Нара |

|---------------------------------------------|

| Название | Школа | Количество| Площадь |

| | | монахов | земель(га) |

|-----------|-------|-----------|-------------|

| Тодайдзи | Т | 220 | 368.8 |

| Якусидзи | С | 50 | 54.7 |

| Дайаедзи | Д | 10 | 12.2 |

-----------------------------------------------