русс | укр

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

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

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

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


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

Алгоритм


Дата добавления: 2014-11-27; просмотров: 564; Нарушение авторских прав


1. Ввести количество студентов (n).

2. Для номера студента (i) от 1 до n выполнить

ввести ведомость [i]

3. Количество_двоечников = 0.

4. Для i от 1 до n выполнить

4.1. колич_2 = 0

4.2. Для j от 1 до 5 выполнить

Если у ведомости [i].оценка[j] < 3, то

колич_2 = колич_2 + 1

4.3. Если колич_2 > 0, то

а) вывести ведомость [i],

б) Количество_двоечников = Количество_двоечников +1

5. Вывести Количество_двоечников.

6. Закончить.

Программа для этого алгоритма будет иметь вид

 

Program Count_2;

Const

Nmax=40; { Max количество студентов в группе }

Dl=15; { длина фамилии и имени }

M=5; { количество оценок }

Type

Stud = Record

Fam,Im,Ot : String [dl];

Numz : LongInt;

Otm : Array [1..m] Of Integer

End;

Var

Vedom : Array [1..Nmax] Of Stud;

i,j : Integer;

kdv,k2,n : Integer;

Begin

Writeln(’Введите количество студентов’);

Readln(n); {п. 1.}

Writeln(’Вводите информацию о каждом студенте’);

For i:=1 to n Do {п. 2.}

Begin

Write(’Фамилия: ’);

ReadLn(Vedom[i].Fam);

Write(’Имя: ’);

ReadLn(Vedom[i].Im);

Write(’Отчество: ’);

ReadLn(Vedom[i].Ot);

Write(’Номер зачетки: ’);

ReadLn(Vedom[i].Numz);

WriteLn(’Вводите оценки по одной:’);

For j := 1 to m do

Begin

WriteLn(’Введите ’,j,’ –ю оценку’);

ReadLn(Vedom[i].Otm[j]);

End;

End;

kdv := 0; {п. 3.}

Writeln(’Фамилии и номера зачеток двоечников’);

For i:=1 to n Do

Begin

k2 := 0; {п. 4.1.}

For j := 1 to m Do {п. 4.2.}

If Vedom[i].Otm[j] < 3 Then

k2 := k2+1;

If k2 > 0 Then {п. 4.3.}

Begin

kdv := kdv + 1;

Writeln(Vedom[i].Fam:16,Vedom[i].Numz:8)

End;

End;

Writeln(’Количество двоечников в группе - ’,kdv);

WriteLn(’Нажмите Enter...’);

ReadLn;

End.

 

Для сокращения записи программ с данными типа Record используется оператор With, который в общем случае записывается так:



With Имя_Записи Do

Оператор_1;

В Операторе_1 к полям записи автоматически добавляется Имя_Записи.

С использованием этого оператора цикл ввода данных в приведенной выше программе был бы записан так

 

For i:=1 to n Do

With Vedom[i] do

Begin

Write(’Фамилия: ’);

ReadLn(Fam);

Write(’Имя: ’);

ReadLn(Im);

Write(’Отчество: ’);

ReadLn(Ot);

Write(’Номер зачетки: ’);

ReadLn(Numz);

WriteLn(’Вводите оценки по одной’);

For j := 1 to m do

Begin

WriteLn(’Введите ’,j,’ –ю оценку’);

ReadLn(Otm[j]);

End;

End; { With }

Пример 2. Ввести в ЭВМ список характеристик N стран мира, содержащий информацию вида (N<=40):

Название, площадь

Составить программу, которая упорядочивает список по убыванию площади и выводит полученный результат на экран.

Общий алгоритм для этой задачи будет такой.

1. Ввести характеристики стран.

2. Упорядочить характеристики по убыванию площади.

3. Вывести полученный список.

4. Закончить.

Применим для упорядочения характеристик стран известный метод пузырька и получим уточненный алгоритм.

1.1. Ввести количество стран (n).

1.2. Для номера страны (i) от 1 до n выполнить

ввести страну [i].

2. Для номера просмотра (k) от 1 до n - 1 выполнить

Для номера страны (i) от 1 до n - k выполнить

Если у Страны[i]. площадь > Страны[i + 1]. площадь, то

Поменять местами Страну[i] и Страну[i + 1].

3. Для номера страны (i) от 1 до n выполнить

ввести у страны [i]. название и площадь.

4. Закончить.

Программа для этого алгоритма имеет вид.

Program Lends;

Const

Nmax=40; { Max количество стран в списке }

Dl=15; { длина названия }

Type

Country = Record

Name : String [15];

Square : Integer;

End;

Var

Count : Array [1..Nmax] Of Country;

Count1: Country;

n, i, k : Integer;

 

Begin

 

Writeln(’Введите количество стран’);

Readln(n);

Writeln(’Вводите информацию о каждой стране’);

For i:=1 to n Do

With Count[i] do

Begin

Write(’Название: ’);

ReadLn(Name);

Write(’Площадь: ’);

ReadLn(Square);

End;

{ Сортировка }

For k:=1 to n - 1 Do

For i:=1 to n - k Do

If Count[i].Square > Count[i+1].Square then

Begin

{ Перестановка }

Count1:= Count[i];

Count[i]:= Count[i+1];

Count[i]:= Count1;

End;

Writeln('Характеристики стран');

For i:=1 to n Do

With Count[i] do

Writeln(Count[i].Name:20, Count[i].Square:8);

Writeln('Работа окончена, нажмите Enter');

Readln;

End.

 



<== предыдущая лекция | следующая лекция ==>
Описания полей | Файлы и наборы данных


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


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

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

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


 


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

 
 

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

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