Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Обработка одномерных массивов. При решении задач обработки массивов используют базовые алгоритмы реализации циклических вычислительных процессов: организация счетчика




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

Задача 1. Организация счетчика

Дан целочисленный массив: В = {bi};i = . Определить количество элементов массива, которые делятся на 3 без остатка.

Конец
Вывод L
L=L+1
Да
Bi кратно 3?
I=0, 19
L=0
НАЧАЛО
Ввод массива В
Схема алгоритма:

 

 

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

 

#include "stdafx.h"

int main()

{

int В[20]; /* описание массива B*/

int i, L;

printf("Введите массив В\n");

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

scanf("%d", &В[i]); /* ввод данных в массив с клавиатуры*/

L=0;

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

if (В[i] % 3== 0) /*проверка элемента на кратность 3 */

L++;

printf("Кол-во=%d\n", L);

return 0;

}

Задача 2. Накопление суммы и произведения

Дано целое число п и массив вещественных чисел:

.

Вычислить среднее арифметическое и среднее геометрическое чисел массива, используя формулы:

; .

Схема алгоритма:

 

Конец
Вывод S,P
S=S+X[i] P=P*X[i]  
S=S/n P=P1/n
i=1,n
S=0 P=1
Ввод n,X[n]  
НАЧАЛО

 

 


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

 

#include "stdafx.h"

#include <math.h>

int main()

{

float X [100]; //описание массива Х

float z;

int n;

int i;

float S=0, P=1; //начальные значения суммы и произведения

printf("Введите размер массива n= ");

scanf("%d",&n);

printf("Введите массив X\n");

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

scanf("%f",&X[i]);

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

{

S = S + X[i]; /* вычисление суммы элементов массива Х */

P =P*X[i]; /* вычисление произведения элементов Х */

}

S = S/n; /* вычисление среднего значения Х */

z=1.0/n;

P=pow(P,z); /* вычисление среднего геометрического Х */

printf("S=%6.2f\n", S);

printf("P=%10.6f\n",P);

return 0;

}

 

Задача 3. Поиск минимального и максимального элементов массива

Дан вещественный массив: T = {ti}; i = . Поменять местами минимальный и максимальный элементы массива и вывести массив после обмена.

Решение

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

Введем обозначения:

min - минимальный элемент;

imin - индекс минимального элемента;

max - максимальный элемент;

imax - индекс максимального элемента.

 

Схема алгоритма:

 

Да
Вывод S,P
Конец
Max=T[i] imax=i
Нет
Да
T[i]>Max
Нет
Min=T[i] imin=i
Min=106 Max=-106
i=1,10
НАЧАЛО
T[i]<Min
Ввод массива Т

 

 


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

#include "stdafx.h"

#include<math.h>

int main()

{

float T[10]; /* описание массива Т */

int i, imin, imax;

float min, max;

printf("Введите массив Т\n");

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

scanf("%f",&T[i]);

min =+1E6;

max =-1E6;

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

{

if (T[i]<min)

{

min = T[i];

imin=i; /* сохранение номера текущего min */

}

if(T[i]>max)

{

max = T[i];

imax = i; /* сохранение номера текущего max */

}

}

T[imin]=max;

T[imax]= min;

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

printf("%6.2f ",T[i]);

printf("\n");

return 0;

}




Поделиться с друзьями:


Дата добавления: 2014-12-26; Просмотров: 434; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.