bsuir.info
БГУИР: Дистанционное и заочное обучение
(файловый архив)
Вход (быстрый)
Регистрация
Категории каталога
Другое [157]
АВС [6]
КПиЯП [80]
ОАиП [305]
ОКТ [79]
СиСПО [8]
Форма входа
Поиск
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Файловый архив
Файлы » ПОИТ » ОАиП

Лабараторная №1 по ОАиП ч.2 вариант 8
Подробности о скачивании 27.01.2011, 23:49
1. Найти максимальный элемент в массиве ai (i=1, , n), используя очевидное соотношение max(a1, , an) = max[max(a1, , an–1), an].
Оконный режим.
#include <vcl.h>
#pragma hdrstop
#include "z1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int n, a[10];
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
n= StrToInt(Edit1->Text);

StringGrid1->ColCount=n;
StringGrid1->Visible=True;
for(int i=0; i<n;i++) // Заполнение массива случайными числами
StringGrid1->Cells[i][0] = IntToStr(random(21)-10);

//заполняем массив
for(int i=0; i<n;i++)
a[i]=StrToInt(StringGrid1->Cells[i][0]);
}
//---------------------------------------------------------------------------
int max(int c[10], int b, int k) // поиск максимального
{
int l;
if(k>1)
{
l = max(c,c[k-1],k-1); //рекурсивный вызов
if (l<b) l=b;
}
return l;
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Edit2->Text=IntToStr(max(a,a[n],n));
}
Результат работы программы:

Консольный режим:
#include <vcl.h>
#include <stdio.h>
#include <conio.h>
#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
void Rand();
void output();
int max(int c[10], int b, int k);
int n, a[10], i;
int main(int argc, char* argv[])
{
puts("n= ");
scanf("%d", &n);

Rand();

printf("Massiv: ");
output();

int m;

m=max(a,a[n],n);

printf("\n Max= %d",m);

puts("\nPress any key ... ");
getch();
return 0;
}
//---------------------------------------------------------------------------
void Rand() //создание массива случайных чисел
{
randomize();

for(i=0;i<n;i++)
a[i]=random(31)-10;
}

void output()
{
for(i=0;i<n;i++)
printf(" %d",a[i]);
}

int max(int c[10], int b, int k) //поиск максимального
{
int l;
if(k>0)
{
l = max(c,c[k-1],k-1); //рекурсивный вызов
if (l<b) l=b;
}
return l;
}
Результат работы программы:

Категория: ОАиП | Добавил: schamile
Просмотров: 2565 | Загрузок: 18
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]