Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Организация разветвляющегося вычислительного процесса
Постановка задачи 1. Исходные данные: a, b, c.
2. Математическая модель:
3.Выводимые данные: x, y
4. Аномалии: а) bc ≠ 0, если a< bc; b) ax ≠ 0, если -2 ≤ x ≤ 2
. Блок-схема алгоритма Текст программы
#include < stdio.h> #include< math.h>
main() { int a, b, c; float x, y; clrscr(); printf (" Vvedite A, B i C cherez probel: "); scanf(" %d%d%d", & a, & b, & c); if(a> =b*c) x=sqrt(a-b*c); else if(b*c! =0) {x=(float)a/(b*c); } else {printf(" \nResheniya net! "); exit(1); } printf(" \nX=%10.4f", x); if(x> =-2) y=x*(a+b+c); else if(x> =2) y=log(x)-b; else if(x! =0 & & a! =0) y=(a*a+b*c)/(a*x); else {printf(" \nResheniya net! "); exit(1); } printf(" \nY=%10.4f", y); getch(); }
Постановка задачи
1. Исходные данные: a, b, xn, xk, dx.
2. Математическая модель:
Определить сумму и количество положительных значений Y и произведение отрицательных.
3. Аномалии: а) (xk-xn)/dx≤ 0; б) a≠ x если x> 0; в) x≠ 0; г) b-3.7x> 0. 4.Выводимые данные:
Блок-схема
Текст программы #include < stdio.h> #include< math.h> #include < conio.h> main() { float a, b, xn, xk, dx; float x, y, S=0, P=1; int k=0, f=0; clrscr(); /*Kontrol vhodnih dannih */ do {printf(" \nVvedite xn, xk, dx ==> "); scanf(" %f%f%f", & xn, & xk, & dx); } while((xk-xn)/dx< =0); printf(" \nVvedite a, b==> "); scanf(" %f%f", & a, & b); x=xn; printf(" \n=================================="); printf(" \n| X | Y |"); printf(" \n=================================="); while(x< =xk+dx/2) { if(x> 0) if(a! =x) { y=(a+x)/(a-x)+exp(-x); f=0; } else f=1; else if(x! =0) {if(b-3.7*x> 0) {y=cos(x+log(fabs(x)))/sqrt(b-3.7*x); f=0; } else f=1; } else f=1; if (f==0) { printf(" \n| %10.2f | %10.7f |", x, y); if(y> 0) {S+=y; k++; } else if(y< 0) P*=y; } else printf(" \n| %10.4f | R/N |", x); x+=dx; } printf(" \n=================================="); printf(" \n\nS= %.2f", S); printf(" \n\nP= %.2f", P); printf(" \n\nK= %d", k); getch(); } Результаты: 5.3. Обработки одномерного массива
Постановка задачи 1. Исходные данные: массив A(n)
2. Математическая модель: SA=
Определить максимальный элемент массива (max) А и его номер (nom).
3.Выводимые данные: max, nom, SA.
4. Аномалии: нет. Блок-схема #include < stdio.h> #include < conio.h> #include < stdlib.h> main() { int a[100], i, n, max; int nom, sum=0; float sa; clrscr(); printf(" \nVvedite kol-vo elementov massiva A ot 1 do 100 = "); scanf(" %d", & n); printf(" \n Massiv A: "); for (i=0; i< n; i++) { a[i]=random(100)-50; printf(" \n a[%d]=%d", i+1, a[i]); sum+=a[i]; } sa=(float)sum/n; max=a[0]; nom=0; for (i=1; i< n; i++) if (max< =a[i]) { max=a[i]; nom=i; } printf(" \n\nMaxim-i element = %d", max); printf(" \nNomer max-go elementa = %d", nom+1); printf(" \nSrednee arifmeticheskoe SA=%5.2f", sa); getch(); }
Результаты
В начальной части массива расположить входящие в его состав нулевые элементы, затем в порядке возрастания отрицательные и затем в порядке убывания положительные элементы.
Текст программы
#include < stdio.h>; #include < stdlib.h>; #include < conio.h> #define N 100
main() { int a[N], i, j, k=0, n, l, r;
clrscr(); do { printf(" Vvedite kol-vo elementov massiva N < 100 = "); scanf(" %d", & n);
} while (n< 2||n> 100); printf(" \nVvedite elementi: "); for (i=0; i< n; ++i) {printf(" \n a[%d]=", i); scanf(" %d", & r); a[i]=r; } clrscr(); printf(" \nIshodnii massiv: \n\n"); for (i=0; i< n; ++i) { printf(" a[%d]=%d", i, a[i]); }
for (i=0; i< n; ++i) if(a[i]==0) {k++; r=a[i]; for(j=i; j> k-1; j--) a[j]=a[j-1]; a[k-1]= r; }
for (i = k; i < n-1; i++) { for (l = i, j = i+1; j < n; j++) if (a[j] < a[l]) l = j; r = a[i], a[i] = a[l], a[l] = r;
}
i=k; while (a[i]< 0) i++; k=i-1;
for (i = k+1; i < n-1; i++) { for (l = i, j = i+1; j < n; j++) if (a[j] > a[l]) l = j; r = a[i], a[i] = a[l], a[l] = r;
} printf(" \nPreobr massiv: \n\n"); for (i=0; i< n; ++i) { printf(" a[%d]=%d", i, a[i]); } getch(); }
Результаты:
|