ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 12.12.2025

Просмотров: 262

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Справочные материалы по базовым алгоритмическим конструкциям

языка C#

1. Оператор присваивания соответствует базовой алгоритмической конструкции «Процесс» и имеет следующий основной формат:

переменная = выражение;

Рис.9.1. Алгоритмическая конструкция «Процесс»

2. Условный оператор if имеет две формы записи – сокращенную и полную (рис.9.2), каждая из которых может иметь однострочный или многострочный формат. Форматы записи этого оператора для различных форм имеют вид:

а) сокращенная форма:

– однострочный формат – if (<условие>) <оператор>;

– многострочный формат – if (<условие>)

<оператор>;

б) полная форма:

– однострочный формат – if (<условие>) <оператор_1>; else <оператор_2>;

– многострочный формат – if (<условие>)

<оператор_1>; else <оператор_2>;

Рис.9.2. Алгоритмические конструкции Условного оператора: сокращенная и полная

3. Оператор выбора варианта Switch реализует алгоритмическую конструкцию «Выбор варианта» (рис.9.3). Его формат записи имеет вид:

switch (<выражение>)

{ case <константное_выражение_1>: <операторы_1>; <оператор_перехода_1>;

case <константное_выражение_2>: <операторы_2>; <оператор_перехода_2>;

case <константное_выражение_К>: <операторы_К>; <оператор_перехода_К>;

[default: <операторы_N>;

<оператор_перехода_N>;]

}

Рис.9.3. Алгоритмические конструкции Выбора варианта

4. Различают три типа циклов: «Цикла с параметром», «Цикл с предусловием» и «Цикл с постусловием» (рис.9.4):

а) формат записи оператора цикла с параметром:

for (<инициализация_счетчиков>; <условие>; <изменение_счетчиков>) <операторы_тела_цикла>;

б) формат записи операторов цикла с предусловием: while (<условие>)

<операторы_тела_цикла>;

в) формат записи оператора цикла с постусловием: do

<операторы_тела_цикла>; while (<условие>);

35

36


а) б)

Рис.9.4. Алгоритмические конструкции Цикла с параметром,

Цикла с предусловием (а), Цикла с постусловием (б)

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

а) Оператор завершения текущего блока операторов (в цикле и в операторе выбора варианта). Формат записи этого оператора имеет вид:

break;

б) Оператор завершения текущей итерации цикла. Формат записи этого оператора имеет вид:

continue;

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

goto <Метка>;

...

<Метка>: <оператор>;

г) Оператор завершения работы метода-функции и возврата к вызвавшему его оператору. При необходимости этот оператор обеспечивает возврат функцией своего результирующего значения. Формат записи этого оператора имеет вид:

return [<выражекие>];

6. При использовании подпрограмм можно разбивать программные коды на небольшие логически законченные блоки.

Для обозначения начала и конца программы или процедуры используется алгоритмическая конструкция «Терминатор» (рис.9.5). Описание процедуры имеет следующий синтаксис:

[Public | Private] Sub имяПроцедуры[(аргументы)]

операторы

End Sub

Для обозначения обращения к процедуре в программе используется алгоритмическая конструкция «Предопределенный процесс» (рис.9.6). Формат вызова процедуры имеет вид:

[Call] NameProc[(аргумент1, аргумент2, ... аргументN)]

Рис.9.5. Алгоритмическая

Рис.9.6. Алгоритмическая конструкция

конструкция Терминатор

Предопределенный процесс

7. Для организации ввода исходных данных и вывода результатов вычислений, полезных советов, сообщений об ошибках или предупреждений могут использоваться элементы управления: Label (Надпись), TextBox (Текстовое поле), ListBox (Список), ComboBox (Раскрывающийся список) и др., а также две функции для отображения стандартных окон InputBox и MsgBox или метод Show из класса MessageBox. В схемах алгоритмах для этого используется алгоритмическая конструкция «Данные» (рис.9.7).

Рис.9.7. Алгоритмическая конструкция «Данные»

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

Возвращаемое_знач = InputBox (Prompt [, Title] [, Default] [, xPos] [, уPоs])

б) Функция вызова окна MsgBox позволяет задать текст сообщения, заголовок, набор кнопок, вид пиктограммы, кнопку по умолчанию и некоторые другие параметры. При этом допускается использование синтаксиса процедуры и функции:

Синтаксис процедуры:

MsgBox(Prompt, [Buttons], [Title])

Синтаксис функции:

Возвращаемое_знач = MsgBox(Prompt, [Buttons], [Title])

Параметр Buttons является суммой констант:

Buttons = Button + Icon + Default + Modal + Extras + Extras

в) Метод Show из класса MessageBox позволяет задать текст сообщения, заголовок, набор кнопок, вид пиктограммы, кнопку по умолчанию и некоторые другие параметры.

37

38


Возвращаемое_знач = MessageBox.Show([Owner], Prompt, [Title], [Buttons], [Icon], [DefaultButton], [Options])

39

Приложение А. Перечень типовых задач

Общие требования к решению задач.

Разработать приложение для решения поставленной задачи с использованием оконного интерфейса. В этом приложении предусмотреть:

возможность различных (естественных для конкретной задачи) вариантов ввода исходных данных (с клавиатуры, из файла, методом случайной генерации) по выбору пользователя;

отображение введенных исходных данных в естественном виде;

наличие необходимых элементов управления для выбора режимов работы приложения и выполнения заданных функций;

отображение полученных результатов в естественном виде;

возможность (при необходимости, по выбору пользователя) сохранения исходных данных и полученных результатов в файле на диске (с задаваемым пользователем именем);

корректную обработку возможных ошибочных ситуаций.

Для разработанного приложения подготовить контрольные примеры для его тестирования.

1.Массивы

1.1.Одномерные массивы

А

1.Дан массив натуральных чисел. Найти сумму элементов, кратных данному K.

2.В целочисленной последовательности есть нулевые элементы. Создать массив из номеров этих элементов.

3.Дана последовательность целых чисел a1, a2, ..., an. Выяснить, какое число встречается раньше – положительное или отрицательное.

4.Дана последовательность действительных чисел a1, a2, ..., an. Выяснить, будет ли она возрастающей.

5.Дана последовательность натуральных чисел a1, a2, ..., an. Создать массив из четных чисел этой последовательности. Если таких чисел нет, то вывести сообщение об этом факте.

6.Дана последовательность чисел a1, a2, ..., an. Указать наименьшую длину числовой оси, содержащую все эти числа.

7.Дана последовательность действительных чисел a1, a2, ..., an. Заменить все ее члены, большие данного Z, этим числом. Подсчитать количество замен.

8.Последовательность действительных чисел оканчивается нулем. Найти количество членов этой последовательности.

9.Дан массив действительных чисел, размерность которого N. Подсчитать, сколько в нем отрицательных, положительных и нулевых элементов.

40



10.Даны действительные числа a1, a2, …, an. Поменять местами наибольший и наименьший элементы.

11.Даны целые числа a1, a2, ..., аn. Вывести на печать только те числа, для которых выполняется условие аi ≤ i.

12.Даны натуральные числа a1, a2, ..., an. Указать те, у которых остаток от деления на М равен L (0 ≤ L ≤ М – 1).

13.В заданном одномерном массиве поменять местами соседние элементы, стоящие на четных местах, с элементами, стоящими на нечетных.

14.При поступлении в вуз абитуриенты, получившие «двойку» на первом экзамене, ко второму не допускаются. В массиве A[n] записаны оценки экзаменующихся, полученные на первом экзамене. Подсчитать, сколько человек не допущено ко второму экзамену.

15.Дана последовательность чисел, среди которых имеется один нуль. Вывести на печать все числа, включительно до нуля.

16.В одномерном массиве размещены: в первых элементах значения аргумента, в следующих – соответствующие им значения функции. Напечатать элементы этого массива в n параллельных столбцов (аргумент и значения функции).

17.Пригодность детали оценивается по размеру B, который должен соответствовать интервалу (A – δ, A + δ). Определить, имеются ли в партии из N деталей бракованные. Если да, то подсчитать их количество, иначе выдать отрицательный ответ.

18.У вас есть доллары. Вы хотите обменять их на рубли. Есть информация о стоимости купли-продажи в банках города. В городе N банков. Составьте программу, определяющую, какой банк выбрать, чтобы выгодно обменять доллары на рубли.

19.Дан целочисленный массив с количеством элементов n. Напечатать те его элементы, индексы которых являются степенями двойки (1, 2, 4, 8, 16, ...).

Б

20. Дан одномерный массив A[N].

Найти: mаx(а2, а4, ..., a2k) + min(а1, а3, …, a2k-1).

21.Дана последовательность действительных чисел a1, a2, ..., аn. Указать те ее элементы, которые принадлежат отрезку [с, d].

22.Дана последовательность целых положительных чисел. Найти произведение только тех чисел, которые больше заданного числа М. Если таких нет, то выдать сообщение об этом.

23.Последовательность a1, a2, ..., аn состоит из нулей и единиц. Поставить

вначало этой последовательности нули, а затем единицы.

24.Даны действительные числа a1, a2, ..., аn. Среди них есть положительные и отрицательные. Заменить нулями те числа, величина которых по модулю больше максимального числа (|ai| > max{a1, a2, ..., аn}).

25.Даны действительные числа а1, а2, ..., аn.

Найти max(a1 + a2n, a2 + a2n-1, ..., аn + an+1).

26. В последовательности действительных чисел а1, а2, ..., аn есть только положительные и отрицательные элементы. Вычислить произведение

41

отрицательных элементов P1 и произведение положительных элементов Р2. Сравнить модуль Р2 с модулем Р1 и указать, какое из произведений по модулю больше.

27.Дан массив действительных чисел. Среди них есть равные. Найти первый максимальный элемент массива и заменить его нулем.

28.Дана последовательность действительных чисел a1 ≤ a2 ≤ ... ≤ аn. Вставить действительное число b в нее так, чтобы последовательность осталась неубывающей.

29.Даны целые положительные числа а1, а2, ..., an. Найти среди них те, которые являются квадратами некоторого числа m.

30.Дана последовательность целых чисел a1, a2, ..., аn. Образовать новую

последовательность, выбросив из исходной те члены, которые равны min(a1, a2, ..., аn).

31.У прилавка магазина выстроилась очередь из п покупателей. Время обслуживания i-того покупателя равно tj (i = 1, …, n). Определить время Ci пребывания i-гo покупателя в очереди.

32.Секретный замок для сейфа состоит из 10 расположенных в ряд ячеек,

вкоторые надо вставить игральные кубики. Но дверь открывается только в том случае, когда в любых трех соседних ячейках сумма точек на передних гранях кубиков равна 10. (Игральный кубик имеет на каждой грани от 1 до 6 точек.) Напишите программу, которая разгадывает код замка при условии, что два кубика уже вставлены в ячейки.

33.В массиве целых чисел с количеством элементов n найти наиболее часто встречающееся число. Если таких чисел несколько, то определить наименьшее из них.

34.Каждый солнечный день улитка, сидящая на дереве, поднимается вверх на 2 см, а каждый пасмурный день опускается вниз на 1 см, В начале наблюдения улитка находится в A см от земли на B-метровом дереве. Имеется 30-элементный массив, содержащий сведения о том, был ли соответствующий день наблюдения пасмурным или солнечным. Написать программу, определяющую местоположение улитки к концу 30-го дня наблюдения.

35.Дан целочисленный массив с количеством элементов n. «Сожмите» массив, выбросив из него каждый второй элемент (дополнительный массив при этом не использовать).

36.Задан массив, содержащий несколько нулевых элементов. Сжать его, выбросив эти элементы.

37.Задан массив с количеством элементов N. Сформируйте два массива:

впервый включите элементы исходного массива с четными номерами, а во второй – с нечетными.

38.Дана последовательность целых чисел a1, a2, ..., аn. Указать пары чисел аi, аj, таких, что аi + аj = m.

39.Даны целые числа a1, a2, ..., аn. Наименьший член этой

последовательности заменить целой частью среднего арифметического всех членов, остальные члены оставить без изменения. Если в последовательности несколько наименьших членов, то заменить последний по порядку.

42