русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Задание 2.


Дата добавления: 2015-07-23; просмотров: 515; Нарушение авторских прав


  1. Создать процедуру:

- определяющую максимальный и минимальный элементы вектора vectorn,

- сортирующую элементы, находящиеся между ними, по возрастанию.

Перед началом поиска максимального элемента max вектора vectorn принимаем за него элемент vector1. После этого сравниваем остальные элементы вектора vectori (i=2,…,n) с текущим максимумом: если очередной элемент больше текущего максимума max, то сейчас он – текущий максимум. Запоминаем индекс текущего максимума i_max.

Таким же образом определяем минимальный элемент вектора min и его индекс i_min.

Сравниваем индексы найденных элементов:

- если i_min < i_max , то сортируем элементы вектора от i_min+1 до i_max-1,

- если i_max < i_min , то сортируем элементы вектора от i_max+1 до i_min-1,

 

  1. Схема алгоритма решения задачи

 

2.1. Головная программа:

 

 

2.2. Подпрограмма-процедура:

  1. Код программы

 

3.1. На языке Паскаль:

 

Program Variant_0;

Uses WinCrt;

Const n = 10; {задание размера вектора именованной константой}

Type TVect=Array [1..n] Of Integer;{описание нового типа}

Var i, j : Word;

vector : TVect;

min, max, v_min, v_max : Integer;

Procedure Sort_max_min(Var min_vector, max_vector: Integer;
Var AA: Array Of Integer);

Var i, j, k, min, max, i_min, i_max, k_nach, k_kon, nn: Integer;

Begin

nn:=High(AA); {индекс последнего элемента открытого вектора}

max:=AA[0];

i_max:=0;

For i:=1 To nn Do {поиск максимального элемента вектора}

If (AA[i]>max) Then

Begin

max:=AA[i];

i_max:=i;

End;

min:=AA[0];

i_min:=0;

For i:=1 To nn Do {поиск минимального элемента вектора}

If (AA[i]<min) Then

Begin

min:=AA[i];

i_min:=i;

End;

min_vector:=min;

max_vector:=max;

If (i_min<i_max) {определяем начало и конец диапазона сортировки}



Then

Begin

k_nach:=i_min+1;

k_kon:=i_max-1;

End

Else

Begin

k_nach:=i_max+1;

k_kon:=i_min-1;

End;

{сортировка элементов между k_nach и k_kon методом “пузырька”}

For i:=k_kon DownTo k_nach+1 Do

For j:=k_nach To i-1 Do

If (AA[j]>AA[j+1]) Then {меняем эти элементы местами}

Begin

k:=AA[j];

AA[j]:=AA[j+1];

AA[j+1]:=k;

End;

End; {процедуры Sort_max_min}

Begin {головной программы}

Randomize; {запуск генератора случайных чисел}

WriteLn('Лабораторная работа №7_2');

WriteLn('Вариант №0');

WriteLn('ИС-11-1');

WriteLn('Пупкин Василий');

WriteLn;

WriteLn('Задайте диапазон случайных чисел');

Write('v_min=');

ReadLn(v_min);

Write('v_max=');

ReadLn(v_max);

For i:=1 To n Do {заполнение вектора случайными числами}

vector[i]:=Random(v_max-v_min + 1) + v_min;

WriteLn;

WriteLn('Исходный вектор:');

For i:=1 To n Do {вывод на экран исходного вектора}

Write(vector[i]:5);

WriteLn;

Sort_max_min(min, max, vector);

WriteLn;

WriteLn('min=', min);

WriteLn('max=', max);

WriteLn;

WriteLn('Полученный вектор:');

For i:=1 To n Do {вывод на экран выходного вектора}

Write(vector[i]:5);

WriteLn;

WriteLn;

End.

3.2. На языке Си:

 

#include <stdio.h>

#include <conio.h>

#include <math.h>

#include <time.h>

// прототипы функций

void vorm_vector(int nn, int vect_max, int vect_min, int vect[nn]);

void min_max(int nn, int vector[nn]);



<== предыдущая лекция | следующая лекция ==>
Time_t t; // текущее время для инициализации | Time_t t; // текущее время для инициализации


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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