Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Организация разветвляющегося вычислительного процесса






 

 

Постановка задачи

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(); }
5.2. Организация циклов с известным числом повторений»

 

Постановка задачи

 

 

1. Исходные данные: a, b, xn, xk, dx.

 

2. Математическая модель:

 

Определить сумму и количество положительных значений Y и произведение отрицательных.

 

3. Аномалии: а) (xk-xn)/dx≤ 0;

б) a≠ x если x> 0;

в) x≠ 0;

г) b-3.7x> 0.

4.Выводимые данные:

 

 

 


Блок-схема

       
   
 
 


-
x=x+dx

Текст программы

#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(); }

 


Результаты


5.4.Обработки одномерного массива с перестановкой элементов

 

В начальной части массива расположить входящие в его состав нулевые элементы, затем в порядке возрастания отрицательные и затем в порядке убывания положительные элементы.

 

Текст программы

 

#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();

}

 

Результаты:

 

 

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.