Алгоритм нахождения наименьшего значения элемента одномерного массива
Федеральное агентство связи
БФ ФГОБУ ВПО «СибГУТИ»
Практическая работа №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])+"Отрицательное " |
} |
} |