Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab_cpp.doc
Скачиваний:
10
Добавлен:
07.06.2015
Размер:
2.81 Mб
Скачать

Лабораторная работа №10

Формирование рабочих массивов с помощью операций селекции исходного массива

(2 часа)

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

Теоретические сведения

Смотри теоретические сведения по предыдущей работе.

Пример

/* ЗАНЯТИЕ N 10

Разработал Петров Ю.В.

Объявить массивы заданной размерности, выполнить их

инициализацию с применением функции random() и явно.

Получить доступ к элементам массивов с использованием

операторов организации цикла. Переписать положительные

элементы массива x[1],x[2],...,x[N] в массив y[t], а

отрицательные - в массив z[p]. Элементы в массивах y[t]

и z[p] располагать подряд, элементы массива y1[t]

рассчитать для положительных x[i] по формуле

y1[t]=y1[t]+2*exp(b*y[t]-y[t]*y[t]),где b=N/5 */

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>

#include <math.h>

# define N 20

main()

{ clrscr();

randomize();

int i,t=0,p=0,b=N/5;

int x[N],y[N],z[N]; //Объявление одномерного массива (вектора)

float y1[N]={2.3,3.4,4.0,5.2,6.6,7.9,8.34,9.8,10.4,11.2,\

10.1,9.9,8.7,7.5}; //Инициализация первых 14, остальные -0

printf("\nВывод элементов исходного массива y1[ ]\n");

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

{printf(" y1[%2d]=%4.1f",i+1,y1[i]);

if ((i+1)%5==0) printf("\n");

}

printf("\nИнициализация одномерного массива x[N]\n");

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

{ x[i]=random(40)-20;

printf(" x[%2d]=%2d ",i+1,x[i]); //Вывод элементов

if ((i+1)%5==0) printf("\n"); //массива x[ ]

if (x[i]>=0) //Выбор положительных значений

{ y[t]=x[i]; //Расчет элементов массива y1[ ]

y1[t]=y1[t]+2*exp(b*y[t]-y[t]*y[t]); t++;

}

else {z[p]=x[i]; p++;} //Выбор отрицательных значений

}

printf("\nВывод элементов массива y[ ]>0\n");

i=0;

while ( i<t )

{ printf(" y[%2d]=%2d ",i+1,y[i]);

if ((i+1)%5==0) printf("\n");

i++;

}

printf("\n");

printf("\nВывод элементов массива y1[ ] после расчета\n");

i=0;

do

{ printf(" y1[%2d]=%3.2f",i+1,y1[i]);

if ((i+1)%5==0) printf("\n");

i++;

} while ( i<t );

printf("\n");

printf("\nВывод элементов массива z[ ]<0\n");

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

{ printf(" z[%2d]=%2d ",i+1,z[i]);

if ((i+1)%5==0) printf("\n");

}

getch();

return 1;

}

/* Вывод элементов исходного массива y1[ ]

y1[ 1]= 2.3 y1[ 2]= 3.4 y1[ 3]= 4.0 y1[ 4]= 5.2 y1[ 5]= 6.6

y1[ 6]= 7.9 y1[ 7]= 8.3 y1[ 8]= 9.8 y1[ 9]=10.4 y1[10]=11.2

y1[11]=10.1 y1[12]= 9.9 y1[13]= 8.7 y1[14]= 7.5 y1[15]= 0.0

y1[16]= 0.0 y1[17]= 0.0 y1[18]= 0.0 y1[19]= 0.0 y1[20]= 0.0

Инициализация одномерного массива x[N]

x[ 1]= 8 x[ 2]= 10 x[ 3]=- 7 x[ 4]= 13 x[ 5]=- 1

x[ 6]=-14 x[ 7]= 5 x[ 8]= 17 x[ 9]=-14 x[10]=-19

x[11]= 13 x[12]= 8 x[13]=-10 x[14]=-16 x[15]= 5

x[16]= 9 x[17]=-11 x[18]=-12 x[19]=-16 x[20]=- 3

Вывод элементов массива y[ ]>0

y[1]= 8 y[2]=10 y[3]=13 y[4]= 5 y[5]=17

y[6]=13 y[7]= 8 y[8]= 5 y[9]= 9

Вывод элементов массива y1[ ] после расчета

y1[1]=2.30 y1[2]=3.40 y1[3]=4.00 y1[4]=5.21 y1[5]=6.60

y1[6]=7.90 y1[7]=8.34 y1[8]=9.81 y1[9]=10.40

Вывод элементов массива z[ ]<0

z[ 1]=- 7 z[ 2]=- 1 z[ 3]=-14 z[ 4]=-14 z[ 5]=-19

z[ 6]=-10 z[ 7]=-16 z[ 8]=-11 z[ 9]=-12 z[10]=-16

z[11]=- 3 */

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]