- •4. 1. Базовые средства языка
- •Алфавит языка
- •4.1.5. Типы данных Си
- •Логический тип
- •4.1.8. Операции и выражения
- •Операции присваивания
- •Арифметические операции
- •Логические операции
- •4.1.10. Структура программы
- •4.1.11. Ввод и вывод данных
- •Функции ввода- вывода
- •Объектно-ориентированные средства ввода-вывода.
- •4.2. Операторы управления
- •4.2.1. Понятие алгоритма
- •4.2.2. Изображение алгоритма в виде блок-схемы
- •2.3. Составной оператор
- •2.4. Операторы ветвления
- •If (выражение) оператор;
- •4.2.5. Примеры программ
- •4.2.6. Оператор варианта
- •4.2.7. Алгоритмы циклической структуры
- •Оператор цикла с предусловием
- •Оператор цикла с постусловием
- •Оператор цикла с параметром
- •Операторы передачи управления
- •4.2.8. Решение задач с использованием циклов
- •4.3. Обработка массивов
- •4.3.1. Описание массивов
- •4.3.2. Основные операции над массивами
- •4.3.3. Ввод-вывод элементов массива
- •4.3.4. Вычисление суммы элементов массива
- •4.3.5. Вычисление произведения элементов массива
- •4.3.6. Поиск максимального элемента и его номера
- •4.3.7. Сортировка элементов в массиве
- •4.3.8. Удаление элемента из массива
- •4.3.9. Решение задач с использованием массивов
- •4.4. Обработка матриц
- •4.4.1. Ввод-вывод матрицы
- •4.4.2. Примеры алгоритмов обработки матрицами
- •4.5.1. Передача параметров в функцию
- •4.5.2. Возврат результата с помощью оператора return
- •4.6. Указатели и динамические массивы
- •5. Примеры организации вычислительного процесса
- •5.1 Организация разветвляющегося вычислительного процесса
- •5.2. Организация циклов с известным числом повторений»
- •Блок-схема
- •Текст программы
- •Блок-схема
- •Текст программы
- •5.4.Обработки одномерного массива с перестановкой элементов
- •5.5. Обработка матрицы.
- •Литература
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();
}
Результаты:

