Алгоритм нахождения наименьшего значения элемента одномерного массива

Федеральное агентство связи

БФ ФГОБУ ВПО «СибГУТИ»

Практическая работа №6

По дисциплине:Основы программирования.

Тема: Организация ввода и вывода одномерных массивов в среде Builder C++ и компонентой StringGrid, Memo.

 

 


Выполнил: Проверил:

Студент группы Преподаватель

Повт-241 Гусев.И.С Эрдэнеева.Л.И


Улан-Удэ.2015

Цель работы:Приобрести навыки использования операторов ввода-вывода при обработке одномерных массивов.

Задание к лабораторной работе:6.Дана последовательность целых чисел a1,a2,a3,…,an..Выяснить какое число встречается раньше – положительное или отрицательное.

 

 

Блок схема:

 
 

 

 


Заполнение массива

 

 


Ответы на контрольные вопросы:

1.Понятие одномерного массива и способы его описания:

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

Описание массива имеет следующий вид :

тип элементов <имя массива > [n1 ];

где n1- число элементов массива. Индексы при описании массива задаются константами обычно целого или символьного типа ( вещественный тип для индексов массива недопустим).Тип элементов массива может быть любой.

2. Организация ввода одномерных массивов на языке Builder C++:

Пример1:
Ввод элементов одномерного массива с клавиатуры, может иметь следующий вид:

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

{

printf ("A[%d]=",i); scanf ("%d",&A[i]);

}

 

Пример2:
Заполнение массива случайными числами:
int random (int n);

{

return rand()%n;

}

#include <stdio.h>

------------------------------

randomizer ();

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

{

A[i]=random(100);

}

Пример 3:

Описание и определение:

int A[5]={-1,-2,2,0}

 

3. Вывод массивов на языке Builder C++:

Вывод одномерного массива изnэлементов через пробел:

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

cout >> a[i] >> " ";

Вывод двумерного массива размером (n´m) построчно:

for (i=0; i<n; i++)// Для каждой строки

{

for (j=0; j<m; j++)// вывод m чисел через 2 пробела

printf("%5.1f ",a[i][j]); //число в 5 позициях

cout << '\n'; // переход на след.строку экрана

Алгоритм нахождения суммы и произведение элементов одномерного массива.

Сумма:

s=0;

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

{

s=s+A[i];

}

Произведение:

p=1;

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

{

p=p*A[i];

}

Алгоритм нахождения наибольшего значения элемента одномерного массива и его порядкового номера.

max=A[0];

nmax=0;

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

{

if ( A[i]>max)

{

max=A[i];

nmax=i;

}

}

Алгоритм нахождения наименьшего значения элемента одномерного массива.

min=A[0];

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

{

if ( min>A[i] )

min=A[i];

}

Окно программы:

 

 

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

#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int n;
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
if (Key== VK_RETURN)
StringGrid1->Visible=true;
}
void __fastcall TForm1::Edit1Change(TObject *Sender)
{
StringGrid1->Visible=true;
n=StrToInt(Edit1->Text);
StringGrid1->ColCount=n;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
randomize();
int a[100],i;
for (i=0;i<n; i++)
{
a[i]=random(100)-50;
StringGrid1->Cells[i][0]=IntToStr(a[i]);
}
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{
int a[100],i;
int sum=0;
for (i=0;i<n; i++)
{
a[i]=StrToInt(StringGrid1->Cells[i][0]);
if(a[0]>0)
Lebel2->Caption="Ответ:"+IntToStr(a[0])+"Положительное"
else
Lebel2->Caption="Ответ:"+IntToStr(a[0])+"Отрицательное "
}
}