Методическое пособие по проведению лабораторных работ по дисциплине «Основы программирования и баз данных»


МИНИСТЕРСТВО ОБРАЗОВАНИЯ, НАУКИ И МОЛОДЁЖНОЙ ПОЛИТИКИ КРАСНОДАРСКОГО КРАЯ
ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ПРОФЕССИОНАЛЬНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ КРАСНОДАРСКОГО КРАЯ «КРАСНОДАРСКИЙ КОЛЛЕДЖ ЭЛЕКТРОННОГО ПРИБОРОСТРОЕНИЯ»

МетодическОЕ ПОСОБИЕ
по проведению Лабораторных работ
для студентов специальности: 09.02.02 «Компьютерные сети»
по дисциплине «Основы программирования и баз данных»
2016
УТВЕРЖДАЮ
Заместитель директора по УМР
«____» ____________ 20_____г.
Е.А.Тупчиева
Е. А. Тупчиева

РАССМОТРЕНО
ПЦК КТиТ
протокол № ___
от «____» ___________ 20_____г.
Председатель
Н.В. Новикова
ОДОБРЕНО
решением методического совета
протокол № ___ от ________ 2016 г.
Составитель: Новикова Н.В.,
преподаватель ГБПОУ КК ККЭП ___________ подпись
Рецензент: Сорокин В.Н
директор ООО «Априори»,
квалификация по диплому – инженер ___________ подпись

Методическое пособие предназначено для студентов 3-4 курса специальности 09.02.02 «Компьютерные сети» в помощь при выполнении лабораторных работ по дисциплине «Основы программирования и баз данных». В представленном учебном пособии собран материал по основам программирования и базам данных. Пособие может быть использовано для самостоятельной подготовки студентов к лабораторным работам.
Рекомендовано к использованию в учебном процессе.
СОДЕРЖАНИЕ
Введение
Лабораторная работа № 1 – «Ветвления в программах»
Лабораторная работа № 2 – «Циклы со счетчиком в программах»
Лабораторная работа № 3 – «Циклы с пред- и постусловием в программах»Лабораторная работа № 4 - «Программирование с использованием базовых алгоритмических конструкций»
Лабораторная работа № 5 - «Обработка одномерных массивов»
Лабораторная работа № 6 - «Обработка двумерных массивов»
Лабораторная работа № 7 (уровень 1, уровень 2) - «Обработка строк в программах»
Лабораторная работа № 8 - «Подпрограммы-функции»
Лабораторная работа № 9 - «Работа с файлами»
HYPERLINK \l "_Лабораторная__работа_5" Лабораторная работа №10 – «Структуры»

ВВЕДЕНИЕ
Для выполнения лабораторных работ необходим персональный компьютер с установленной средой программирования.
Перед выполнением работы учащиеся должны изучить краткие теоретические сведения, необходимые для успешного выполнения конкретной работы, освоить навыки работы с интерфейсом интегрированной среды, выполнить работу согласно предложенному заданию, ответить на контрольные вопросы.
По каждой лабораторной работе учащиеся должны получить индивидуальное задание и выполнить его (номер задания соответствует порядковому номеру в журнале). Отчет выполняется в электронном виде (формат лб_*.doc) в личном каталоге учащегося, разработанная программа сохраняется в этом же каталоге.
Порядок выполнения работы при формировании отчета:
Сформировать файл отчета (лб_*.doc) в личном каталоге.
Указать номер и название лабораторной работы, её цель.
Изучить теоретические сведения по теме лабораторной работы.
Дать краткие ответы на вопросы в пункте «Ответы на контрольные вопросы».
Ознакомиться с индивидуальным заданием (смотри Приложение 1) и описать его в пункте «Постановка задачи».
Создать математическую модель решения задачи, содержащую описание переменных и связывающие их формулы, описать её в пункте «Математическая модель».
Создать графическую модель решения задачи – блок-схему в пункте «Графическая модель»
Разработать программу в среде программирования и описать её в пункте «Программная модель решения задачи».
Результаты работы программы описать в пункте «Тестовая модель».
Сделать вывод исходя из цели лабораторной работы.

К СОДЕРЖАНИЮ
Лабораторная работа № 1Тема: «Блок-схемы как графическое представление алгоритмов. Основные блоки, используемые в блок-схемах ветвящихся (условных) алгоритмов»
Цель работы: формирование знаний и умений по работе с блок-схемами алгоритмов, разработка ветвящихся алгоритмов.
Краткие теоретические сведения
Основные этапы решения задач на компьютере
Процесс решения задач на компьютере - это совместная деятельность человека и ЭВМ. Этот процесс можно представить в виде нескольких последовательных этапов. На долю человека приходятся этапы, связанные с творческой деятельностью — постановкой, алгоритмизацией, программированием задач и анализом результатов, а на долю компьютера — этапы обработки информации в соответствии с разработанным алгоритмом.
Рассмотрим эти этапы на следующем примере: пусть требуется вычислить сумму двух целых чисел и вывести на экран результат.
Первый этап - постановка задачи. На этом этапе участвует человек, хорошо представляющий предметную область задачи. Он должен четко определить цель задачи, дать словесное описание содержания задачи и предложить общий подход к ее решению. Для задачи вычисления суммы двух целых чисел человек, знающий, как складываются числа, может описать задачу следующим образом: ввести два целых числа, сложить их и вывести сумму в качестве результата решения задачи.
Второй этап - математическое или информационное моделирование. Цель этого этапа - создать такую математическую модель решаемой задачи, которая может быть реализована в компьютере. Существует целый ряд задач, где математическая постановка сводится к простому перечислению формул и логических условий. Для вышеописанной задачи данный этап сведется к следующему: введенные в компьютер числа запомним в памяти под именами А и В, затем вычислим значение суммы этих чисел по формуле А+В, и результат запомним в памяти под именем Summa.
Третий этап - алгоритмизация задачи. На основе математического описания необходимо разработать алгоритм решения.
Алгоритмом называется точное предписание, определяющее последовательность действий исполнителя, направленных на решение поставленной задачи. В роли исполнителей алгоритмов могут выступать люди, роботы, компьютеры.
Используются различные способы записи алгоритмов. Широко распространен словесный способ записи: это записи рецептов приготовления различных блюд в кулинарной книге, инструкции по использованию технических устройств, правила правописания и многие другие. Наглядно представляется алгоритм языком блок-схем.
Четвертый этап — программирование. Программой называется план действий, подлежащих выполнению некоторым исполнителем, в качестве которого может выступать компьютер. Составление программы обеспечивает возможность выполнения алгоритма и соответственно поставленной задачи исполнителем-компьютером. Во многих задачах при программировании на алгоритмическом языке часто пользуются заменой блока алгоритма на один или несколько операторов, введением новых блоков, заменой одних блоков другими.
Пятый этап - ввод программы и исходных данных в ЭВМ. Программа и исходные данные вводятся в ЭВМ с клавиатуры с помощью редактора текстов, и для постоянного хранения осуществляется их запись на гибкий или жесткий магнитный диск.
Шестой этап - тестирование и отладка программы. На этом этапе происходят исполнение алгоритма с помощью ЭВМ, поиск и исключение ошибок. При этом программисту приходится выполнять работу по проверке работы программы, поиску и исключению ошибок, и поэтому для сложных программ этот этап часто требует гораздо больше времени и сил, чем написание первоначального текста программы. Отладка программы - сложный и нестандартный процесс. Исходный план отладки заключается в том, чтобы оттестировать программу на контрольных примерах.
Контрольные примеры стремятся выбрать так, чтобы при работе с ними программа прошла все основные пути блок-схемы алгоритма, поскольку на каждом из путей могут быть свои ошибки, а детализация плана зависит от того, как поведет себя программа на этих примерах: на одном она может зациклиться (т. е. бесконечно повторять одно и то же действие); на другом - дать явно неверный или бессмысленный результат и т. д. Сложные программы отлаживают отдельными фрагментами.
Седьмой этап - исполнение отлаженной программы и анализ результатов. На этом этапе программист запускает программу и задает исходные данные, требуемые по условию задачи.
Полученные в результате решения выходные данные анализируются постановщиком задачи, и на основании этого анализа вырабатываются соответствующие решения, рекомендации, выводы. Например, если при решении задачи на компьютере результат сложения двух чисел 2 и 3 будет 4, то следует сделать вывод о том, что надо изменить алгоритм и программу.
Возможно, что по итогам анализа результатов потребуются пересмотр самого подхода к решению задачи и возврат к первому этапу для повторного выполнения всех этапов с учетом приобретенного опыта. Таким образом, в процессе создания программы некоторые этапы будут повторяться до тех пор, пока мы получим алгоритм и программу, удовлетворяющие показанным выше свойствам.
Алгоритмизация.
Блок схемы как графическое представление алгоритмов.
Основные блоки, используемые в блок-схемах алгоритмов.
Основным в процессе программирования является разработка алгоритма. Это один из наиболее сложных этапов решения задачи с использованием ЭВМ. В начале обучения программированию целесообразно не привязываться сразу к какому-либо языку, разрабатывать алгоритмы без записи на ЯВУ, а, например, с помощью блок-схем. После такой "чистой" алгоритмизации проще перейти к записи того же алгоритма на определённом языке программирования. Далее продемонстрирован именно такой подход.
Основными алгоритмическими структурами (ОАС) являются следование, ветвление и цикл. В более сложных случаях используются вложения ОАС.
Ниже приведены графические обозначения (обозначения на блок-схемах) ОАС.
Структура “следование” Полное ветвление Неполное ветвление
Цикл с предусловие (цикл ПОКА) Цикл с постусловием (цикл ДО) Цикл с параметром
На схемах СЕРИЯ обозначает один или несколько любых операторов; УСЛОВИЕ есть логическое выражение (ЛВ) (если его значение ИСТИНА, переход происходит по ветви ДА, иначе — по НЕТ). На схеме цикла с параметром использованы обозначения: ПЦ — параметр цикла, НЗ — начальное значение параметра цикла, КЗ — конечное значение параметра цикла, Ш — шаг изменения параметра цикла.
Начало и конец алгоритма на блок-схемах обозначают овалом, вводимые и выводимые переменные записываются в параллелограмме.
В примерах мы будем использовать запись алгоритмов с помощью блок-схем и словесное описание.

Примеры:
1. Линейные алгоритмы
Простейшие задачи имеют линейный алгоритм решения. Это означает, что он не содержит проверок условий и повторений.
Пример 1. Пешеход шел по пересеченной местности. Его скорость движения по равнине v1 км/ч, в гору — v2 км/ч и под гору — v3 км/ч. Время движения соответственно t1, t2 и t3 ч. Какой путь прошел пешеход?
1. Ввести v1, v2, v3, t1, t2, t3.
2. S1 := v1 * t1.
3. S2 := v2 * t2.
4. S3 := v3 * t3.
5. S := S1 + S2 + S3.
6. Вывести значение S.
7. Конец.
Для проверки работоспособности алгоритма необходимо задать значения входных переменных, вычислить конечный результат по алгоритму и сравнить с результатом ручного счета.
Пример 2. Дано натуральное трехзначное число n, в записи которого нет нулей. Составить алгоритм, который возвращает значение ИСТИНА, если верно утверждение: "число n кратно каждой своей цифре", и ЛОЖЬ — в противном случае.
1. Ввести число n
2. A := n mod 10 {разряд единиц}
3. B := n div 100 {разряд сотен}
4. C := n div 10 mod 10 {десятки}
5. L := (n mod A=0) and (n mod B=0) and (n mod C=0)
6. Вывод L
7. Конец
На приведенной выше схеме DIV и MOD соответственно операции деления нацело и получения остатка от целочисленного деления. В фигурных скобках записаны пояснения (комментарии) к операторам.
2. Ветвление
Достаточно часто то или иное действие должно быть выполнено в зависимости от значения логического выражения, выступающего в качестве условия. В таких случаях используется ветвление (развилка).
Пример 1. Вычислить значение функции
1169035-2540lefttop
3. Цикл
Алгоритмическая конструкция используется для решения задач, в которых для достижения цели необходимо многократное повторение последовательности действий.
Пример 1
При решении задачи находится очередной член последовательно и, если он больше, добавляется к сумме.
118745-113665
1. Ввести e
2. S := 0
3. A := 1/4
4. n := 3
5. Сравнить А с e. Если A>=e, переход к п. 10
6. S := S + A
7. A := (n-1)/(n*n)
8. n := n + 1
9. Переход к п. 5
10. Вывод S
11. Конец
В рассмотренных выше примерах количество повторений заранее неизвестно. В первом оно зависит от количества цифр в записи натурального числа, во втором — от числа e.
В тех же случая, когда количество шагов известно из условия задачи, проще и предпочтительней использовать цикл с параметром.
Пример 2. Найти произведение первых k натуральных чисел, кратных трём.
При составлении алгоритма учтем, что первое натуральное число, кратное 3, есть тройка, а все последующие больше предыдущего на 3.
1. Ввод k
2. P := 1 {здесь накапливаем произведение}
3. T := 0 {здесь будут числа, кратные 3}
4. I := 1
5. Если I > k, переход к п. 10
6. T := T + 3
7. P := P * T
8. I := I + 1
9. Перейти к п. 5
10. Вывод P
11. Конец
Изучение программирования разумно начинать собственно с разработки алгоритмов, не акцентируя первоначально внимания на записи алгоритма на том или ином языке программирования.
Языки программирования
Чтобы компьютер выполнил решение какой-либо задачи, ему необходимо получить от человека инструкции, как ее решать. Набор таких инструкций для компьютера, направленный на решение конкретной задачи, называется компьютерной программой.
Современные компьютеры не настолько совершенны, чтобы понимать программы, записанные на каком-либо употребляемом человеком языке — русском, английском, японском. Команды, предназначенные для ЭВМ, необходимо записывать в понятной ей форме. С этой целью применяются языки программирования - искусственные языки, алфавит, словарный запас и структура которых удобны человеку и понятны компьютеру.
В самом общем смысле языком программирования называется фиксированная система обозначений и правил для описания алгоритмов и структур данных. Все языки программирования делятся на языки низкого, высокого и сверхвысокого уровня.
Язык программирования низкого уровня - это средство записи инструкций компьютеру простыми командами на аппаратном уровне. Такой язык отражает структуру данного класса ЭВМ и поэтому иногда называется машинно-ориентированным языком. Пользуясь системой команд, понятной компьютеру, можно описать алгоритм любой сложности. Запись программы на этом языке представляет собой последовательность нулей и единиц.
Существенной особенностью языков программирования низкого уровня является жесткая ориентация на определенный тип аппаратуры (систему команд процессора). В стремлении приспособить язык программирования низкого уровня к человеку разработан язык символического кодирования (автокод или язык ассемблера), структура команд которого определяется форматами команд и данными машинного языка. Программа на таком языке ближе человеку, потому что операторы этого языка — те же команды, но они имеют мнемонические названия, а в качестве операндов используются не конкретные адреса в оперативной памяти, а их символические имена.
Более многочисленную группу составляют языки программирования высокого уровня, средства которых допускают описание задачи в наглядном, легко воспринимаемом виде. Отличительной особенностью этих языков является их ориентация не на систему команд той или иной ЭВМ, а на систему операторов, характерных для записи определенного класса алгоритмов. К языкам программирования этого типа относятся: Бейсик, Фортран, Алгол, Паскаль, Си. Программа на языках высокого уровня записывается системой обозначений, близкой человеку (например, фиксированным набором слов английского языка, имеющих строго определенное назначение). Программу на языке высокого уровня проще понять и значительно легче отладить.
К языкам программирования сверхвысокого уровня можно отнести Алгол, при разработке которого сделана попытка формализовать описание языка, приведшая к появлению абстрактной и конкретной программ. Абстрактная программа создается программистом, конкретная - выводится из первой. Предполагается, что при таком подходе принципиально невозможно породить неверную синтаксически (а в идеале и семантически) конкретную программу. Язык APL относят к языкам сверхвысокого уровня за счет введения сверхмощных операций и операторов. Запись программ на таком языке получается компактной.
Все вышеперечисленные языки - вычислительные. Более молодые - декларативные (непроцедурные) языки, отличительная черта которых - задание связей и отношений между объектами и величинами и отсутствие определения последовательности выполнения действий (Пролог). Такие языки сыграли важную роль в программировании, так как они дали толчок к разработке специализированных языков искусственного интеллекта и языков представления знаний.
Трансляторы
Так как текст записанной на ЯВУ программы не понятен компьютеру, то требуется перевести его на машинный язык. Такой перевод программы с языка программирования на язык машинных кодов называется трансляцией (translation — перевод), а выполняется он специальными программами - трансляторами.
Существует три вида трансляторов: интерпретаторы, компиляторы и ассемблеры.
Интерпретатором называется транслятор, производящий пооператорную (покомандную) обработку и выполнение исходной программы.
Компилятор преобразует (транслирует) всю программу в модуль на машинном языке, после этого программа записывается в память компьютера и лишь потом исполняется.
Ассемблеры переводят программу, записанную на языке ассемблера (автокода), в программу на машинном языке.
Любой транслятор решает следующие основные задачи:
• анализирует транслируемую программу, в частности определяет, содержит ли она синтаксические ошибки;
• генерирует выходную программу (ее часто называют объектной или рабочей) на языке команд ЭВМ (в некоторых случаях транслятор генерирует выходную программу на промежуточном языке, например, на языке ассемблера);
• распределяет память для выходной программы (в простейшем случае это заключается в назначении каждому фрагменту программы, переменным, константам, массивам и другим объектам своих адресов участков памяти).
Систему программирования СИ++ называют интегрированной (integration — объединение отдельных элементов в единое целое) средой программирования, так как она объединяет в себе возможности ранее разрозненных средств, используемых при разработке программ: редактора текстов, компилятора, компоновщика, отладчика, и при этом обеспечивает программисту великолепные сервисные возможности. Часто ее кратко называют IDE (Integrated Development Environment - интегрированная среда разработки).
Контрольные вопросы
Основные этапы решения задач на компьютере.
Свойства алгоритма. Типы вычислительных процессов.
Блок схемы. Понятие и правила построения.
Примеры построения блок-схем алгоритмов.
Языки программирования. Краткое описание каждого.
Трансляторы, компиляторы, отладчики, интерпретаторы.
Язык программирования СИ++. Этапы разработки программ. Интегрированная среда разработки.

Индивидуальные задания (номер задания соответствует порядковому номеру учащегося в журнале)
1. Разработать блок-схему алгоритма, которая вычисляет частное двух чисел. Должна проверяться правильность исходных данных и, если они неверные, выдать сообщение об ошибке.
2. Разработать блок-схему алгоритма вычисления площади кольца по радиусам кольца и отверстия. Должна проверяться правильность исходных данных и, если они неверные, выдать сообщение об ошибке.
3. Разработать блок-схему алгоритма, переводящую время из минут и секунд в секунды. Должна проверяться правильность введенных данных и в случае, если данные неверные, должно выводиться соответствующее сообщение.
4. Разработать блок-схему алгоритма, которая проверяет, является ли год високосным.
5. Разработать блок-схему алгоритма решения квадратного уравнения. Должна проверяться правильность исходных данных. В случае, если коэффициент при второй степени неизвестного равен нулю, вывести соответствующее сообщение.
6. Разработать блок-схему алгоритма вычисления стоимости покупки с учетом скидки. Скидка в 10% предоставляется, если сумма покупки больше 1000 руб.
7. Разработать блок-схему алгоритма вычисления стоимости покупки с учетом скидки. Скидка в 3% предоставляется, если сумма покупки 500 руб, в 5% — если сумма больше 1000 руб.
8. Разработать блок-схему алгоритма, которая сравнивает два введенных числа. Блок-схема должна определить, какое число больше, или, если числа равны, вывести соответствующее сообщение.
9. Разработать блок-схему алгоритма, которая проверяет, является ли введенное целое число четным.
10. Разработать блок-схему алгоритма, которая проверяет, делится ли на три введенное целое число.
11. Разработать блок-схему алгоритма вычисления стоимости разговора по телефону с учетом 20% скидки, предоставляемой по субботам и воскресеньям.
Вводимыми данными являются длительность разговора и номер дня недели.

12. Разработать блок-схему алгоритма, которая вычисляет оптимальный вес человека, сравнивает его с реальным и выдает рекомендацию необходимости поправиться или похудеть. Оптимальный вес вычисляется по формуле: Рост(см)-100.
13. Разработать блок-схему алгоритма, которая запрашивает номер месяца и затем выводит соответствующее название времени года. В случае, если введено недопустимое число, должно выводиться сообщение "Ошибка вводимых данных".
14. Разработать блок-схему алгоритма, которая запрашивает номер дня недели и выводит одно из сообщений: "Рабочий день", "Суббота" или "Воскресенье".
15. Разработать блок-схему алгоритма, которая заменяет меньшее из двух чисел их удвоенным произведением, а большее – полусуммой этих чисел.
16. Разработать блок-схему алгоритма, которая вычисляет значение функции

17.Разработать блок-схему алгоритма, которая сортирует четыре введенных числа в порядке возрастания.
18. Разработать блок-схему алгоритма, которая вычисляет значение функции

К СОДЕРЖАНИЮ
Лабораторная работа № 2
Тема: «Блок-схемы как графическое представление алгоритмов. Основные блоки, используемые в блок-схемах циклических алгоритмов. Цикл с параметром (со счетчиком)»
Цель работы: формирование знаний и умений по работе с блок-схемами алгоритмов, разработка циклических алгоритмов.
Краткие теоретические сведения
(см. Лабораторную работ № 1)
Контрольные вопросы
Определение циклического алгоритма.
Основные типы циклических алгоритмов.
Графическое описание циклических алгоритмов.
Индивидуальные задания (номер задания соответствует порядковому номеру учащегося в журнале)
1. Разработать блок-схему алгоритма, которая выводит таблицу квадратов первых десяти целых положительных чисел.
Ниже приведен пример:
Таблица квадратов.
----------------
Число Квадрат
----------------
11
4
9
16
25
636
749
864
981
10100
---------------------
2. Разработать блок-схему алгоритма, которая вводит 5 дробных чисел и вычисляет их среднее арифметическое.
Ниже приведен пример:
Вычисление среднего арифметического последовательности дробных чисел.
Введите 5 чисел:-> 5.4
-> 7.8
-> 3.0
-> 1.5
-> 2.3
Среднее арифметическое введенной последовательности: 4.00
3. Разработать блок-схему алгоритма, которая вычисляет сумму первых n положительных целых чисел. Количество суммируемых чисел должно вводиться.
Ниже приведен пример:
Вычисление суммы положительных чисел.
Введите количество суммируемых чисел -> 20
Сумма первых 20 положительных чисел равна 210
4. Разработать блок-схему алгоритма, которая вычисляет сумму первых членов ряда: 1, 3, 5, 7 ... Количество суммируемых членов ряда вводится.
Ниже приведен пример:
Вычисление частичной суммы ряда: 1,3,5,7 ...
Введите количество суммируемых членов ряда -> 15I
Сумма первых 15 членов ряда равна 330
5. Разработать блок-схему алгоритма, которая вычисляет сумму первых n членов ряда: 1+1/2+1/3+1/4+… Количество суммируемых членов вводится.
Ниже приведен пример:
Вычисление частичной суммы ряда: 1+1/2+1/3+ ...
Введите кол-во суммируемых членов ряда -> 15
Сумма первых 15 членов ряда равна 3.3182
6. Разработать блок-схему алгоритма, которая создает таблицу степеней двойки от нулевой до десятой.
Ниже приведен пример:
Таблица степеней двойки
-----------------------
1
2
4
8
16
32
64
128
256
512
1024
-------------------------------------
7. Разработать блок-схему алгоритма, которая вычисляет факториал введенного числа. (Факториалом числа n называется произведение целых чисел от 1 до n. Например, факториал 1 равен 1, 8 — 40320).Ниже приведен пример:
Вычисление факториала
Введите число, факториал которого надо вычислить
-> 7
Факториал 7 равен 5040
8. Разработать блок-схему алгоритма, которая выводит таблицу значений функции у = -2,4x2+5x-3 в диапазоне от -2 до 2, с шагом 0,5.
Ниже приведен пример:
----------------
х | у
----------------
-2|-22.60
-1.5|-15.90
-1|-10.40
-0.5|-6.10
|-3.000.5|-1.10
|-0.401.5|-0.90
2 | -2.60
--------------------------
9. Разработать блок-схему алгоритма, которая вычисляет среднее арифметическое вводимой с клавиатуры последовательности дробных чисел. Количество чисел должно вводиться.
Ниже приведен пример:
Вычисление среднего арифметического последовательности дробных чисел.
Введите количество чисел последовательности -> 5
Вводите последовательность.
-> 5.4
-> 7.8
-> 3.0
-> 1.5
-> 2.3
Среднее арифметическое введенной последовательности: 4.00
----------------------------------------------------------------------------------------------------------------------------------------
10. Разработать блок-схему алгоритма, которая вводит последовательность из пяти чисел и после ввода каждого числа выводит среднее арифметическое введенной части последовательности.
Ниже приведен пример:
Обработка последовательности дробных чисел
После ввода каждого числа нажимайте <Enter>
-> 12.3
Введено чисел: 1 Сумма: 12.30 Сред. арифметическое: 12.30
-> 15
Введено чисел: 2 Сумма: 27.30 Сред. арифметическое: 13.65
-> 10
Введено чисел: 3 Сумма: 37.30 Сред. арифметическое: 12.43
-> 5.6
Введено чисел: 4 Сумма: 42.90 Сред. арифметическое: 10.73
-> 11.5
Введено чисел: 5 Сумма: 54.40 Сред. арифметическое: 10.88
------------------------------------------------------------------------------------------------------------------------------------
11. Разработать блок-схему алгоритма, которая вычисляет среднее арифметическое последовательности вводимых чисел. После ввода последнего числа выводится минимальное и максимальное число последовательности. Количество чисел последовательности задается.
Ниже приведен пример:
Обработка последовательности дробных чисел.
Введите количество чисел последовательности -> 5
Вводите последовательность:
-> 5.4
-> 7.8
-> 3.0
-> 1.5
-> 2.3
Количество чисел: 5
Среднее арифметическое: 4.00
Минимальное число: 1.5
Максимальное число: 7.8
-------------------------------------------------------------------------------I
12. Разработать блок-схему алгоритма, которая формирует таблицу стоимости, например, яблок в диапазоне от 100 г до 1 кг с шагом 100 г.
Ниже приведен пример:
Введите цену одного килограмма и нажмите <Enter>
(копейки от рублей отделяйте точкой)
-> 16.50
ВесСтоимость
(гр)(руб.)
----------
1001.65
2003.30
3004.95
400б.60
5008.25
6009.90
70011.5580013.20
90014.85
100016.50
------------------
----------------------------------------------------------------------------------------------------------------
13. Разработать блок-схему алгоритма, которая выводит таблицу значений функции у = -х. Диапазон изменения аргумента от -4 до 4, шаг приращения аргумента 0,5.
14. Разработать блок-схему алгоритма вычисления значения величины
N = k=720(k+1)k (знак П - знак произведения k из диапазона [7;20])
15. Разработать блок-схему алгоритма, которая вычисляет сумму первых n целых положительных четных целых чисел. Количество суммируемых чисел должно вводиться.
Ниже приведен пример:
Вычисление суммы четных положительных чисел.
Введите количество суммируемых чисел:
-> 12
Сумма первых 12 положительных четных чисел равна 156
16. Разработать блок-схему алгоритма, которая выводит на экран таблицу умножения на 7 чисел от 2 до 9.
Ниже приведен пример:
Таблица умножения на 7:
7 x 2 = 14
7 x 3 = 21
7 x 4 = 28
7 x 5 = 35
7 х 6 = 42
7 x 7 = 49
7 x 8 = 56
7 x 9 = 63
--------------------------------------------------------------------------------------------------------------
17. Разработать блок-схему алгоритма, которая выводит на экран квадрат Пифагора — таблицу умножения.
Ниже приведен пример:
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
4 8 9 12 15 18 21 24 27 30
5 8 12 16 20 24 23 32 36 40
5 10 15 20 25 30 35 40 45 50
6 12 18 24 30 36 42 48 54 60
7 14 21 28 35 42 49 56 63 70
8 16 24 32 40 48 56 64 72 80
9 18 27 36 45 54 63 72 81 90
18. Разработать блок-схему алгоритма, которая вычисляет значения величины
M = 7 * c=120c-10c+10(знак ∑ - знак алгебраической суммы для с из диапазона [1;20])
19. Разработать блок-схему алгоритма, которая выводит таблицу значений функции y=(x-2)+(x+l). Диапазон изменения аргумента от -4 до 4, шаг приращения аргумента 0,5.
20. Разработать блок-схему алгоритма, которая вычисляет значения величины
C = 6+a=412a-4a+4(знак ∑ - знак алгебраической суммы для a из диапазона [4;12])
21. Разработать блок-схему алгоритма, которая выводит таблицу квадратов первых пяти целых положительных нечетных чисел.
Ниже приведен пример:
----------------
Число Квадрат
----------------
11
39
525
749
981
---------------------
l22. Разработать блок-схему, которая выводит на экран таблицу умножения на 9 чисел от 2 до 9.
Ниже приведен пример:
Таблица умножения на 9:
9 x 2 = 18
9 x 3 = 27
9 x 4 = 36
9 x 5 = 45
9 х 6 = 54
9 x 7 = 63
9 x 8 = 72
9 x 9 = 81
--------------------------------------------------------------------------------------------------------------
23. Разработать блок-схему алгоритма, которая вычисляет произведение первых n положительных четных целых чисел. Количество чисел должно вводиться.
Ниже приведен пример:
Вычисление произведения четных положительных чисел.
Введите количество чисел:
-> 4
Произведение первых 4 положительных четных чисел равно 384
24. Разработать блок-схему алгоритма, которая выводит двузначные числа, кратные десяти, и вычисляет их сумму.
Ниже приведен пример:
Вычисление суммы двузначных чисел, кратных 10.
Это числа:
10 20 30 40 50 60 70 80 90
Их сумма равна 450
25. Разработать блок-схему алгоритма, которая выводит на экран таблицу деления на 7 чисел от 70 до 7 с шагом 7.
Ниже приведен пример:
Таблица деления на 7:
70 / 7 = 10
63 / 7 = 9
56 / 7 = 8
49 / 7 = 7
42 / 7 = 6
35 / 7 = 5
28 / 7 = 4
21 / 7 = 3
14 / 7 = 2
7 / 7 = 1
26. Разработать блок-схему алгоритма, которая выводит на экран таблицу значений функции у= 5х - 2 на отрезке [1; 10] с шагом b=2.
Ниже приведен пример:
----------------
х | у
----------------
1| 3
3| 13
5| 23
7| 33
9 | 43--------------------------
27. Разработать блок-схему алгоритма, которая вычисляет значения величины D = 10+ k=510(k+5)k QUOTE 6+a=412a-4a+4
(знак П - знак произведения для к из диапазона [5;10] )
28. Разработать блок-схему алгоритма, которая преобразует введенное десятичное число в двоичное.
Ниже приведен пример:
Преобразование десятичного числа в двоичное
Введите целое число от 0 до 255 и нажмите <Enter>
-> 49
Десятичному числу 49 соответствует двоичное 00110001
Для завершения нажмите <Enter>
29. Разработать блок-схему алгоритма, которая выводит все числа, кратные числу 7 из диапазона от 21 до 63, находит их среднее арифметическое.
30. Разработать блок-схему для проверки знания таблицы умножения. Она должна вывести 10 примеров и выставить оценку: за 10 правильных ответов — "отлично", за 9 и 8 — "хорошо", за 7 и 6 — "удовлетворительно", за 6 и менее — "плохо". Ниже приведен рекомендуемый вид экрана во время работы программы. Ответы пользователя выделены полужирным шрифтом:
*** Проверка знания таблицы умножения ***
После примера введите ответ и нажмите <Enter>.
5x3=15
7x7=49
1x4=4
4x3=12
9x4=36
8x8=64
7x8=52
Вы ошиблись! 7x8=56
4x7=28
3x5=15
2x5=10
Правильных ответов: 9
Оценка: Хорошо.
---------------------------------------------------------------------------------------------------------------
К СОДЕРЖАНИЮ
Лабораторная работа № 3
Тема: «Блок-схемы как графическое представление алгоритмов. Основные блоки, используемые в блок-схемах циклических алгоритмов. Циклы с предусловием и постусловием»
Цель работы: формирование знаний и умений по работе с блок-схемами алгоритмов, разработка циклических алгоритмов.
Краткие теоретические сведения
(см. Лабораторную работу № 1)
Контрольные вопросы
Циклические алгоритмы с предусловием.
Циклические алгоритмы с постусловием.
Графическое описание циклических алгоритмов с предусловием и постусловием.
Индивидуальные задания (номер задания соответствует порядковому номеру учащегося в журнале)
Вариант № 1. Циклические алгоритмы с предусловием и постусловием
Вычислить значение произведения S=1+1121+1221+132…1+1N2(N задается с клавиатуры).
--------------------------------------------------------------------------------------------------------------------
Вариант № 2. Циклические алгоритмы с предусловием и постусловием
Вычислите значение суммы S=1+13+19+…+13N при задании числа N с клавиатуры.
------------------------------------------------------------------------------------------------------------------------------------------
Вариант № 3. Циклические алгоритмы с предусловием и постусловием
Вычислить факториал, определяющийся как произведение чисел от единицы до данного числа N, вводимого с клавиатуры (N!=1*2*3*…*N )------------------------------------------------------------------------------------------------------------------------
Вариант № 4. Циклические алгоритмы с предусловием и постусловием
Введя число N, вычислите значение суммы S=1+14+19+…+1N2----------------------------------------------------------------------------------------------------------------------------
Вариант № 5. Циклические алгоритмы с предусловием и постусловием
Последовательно вводя числа, найдите сумму отрицательных членов этой последовательности и произведение положительных, количество отрицательных и положительных.
---------------------------------------------------------------------------------------------------------------
Вариант № 6. Циклические алгоритмы с предусловием и постусловием
В последовательности чисел, вводимых с клавиатуры, найти все простые числа и вывести их значения на экран.
--------------------------------------------------------------------------------------------------------
Вариант № 7. Циклические алгоритмы с предусловием и постусловием
Для 15 произвольных пар значений переменных X и Y, вводимых с клавиатуры, вычислить значение их произведения и суммы и выдать их для каждой пары на экран.
---------------------------------------------------------------------------------------------
Вариант № 8. Циклические алгоритмы с предусловием и постусловием
Последовательно вводя произвольные числа с клавиатуры, найти сумму квадратов всех двузначных чисел, кратных трем.
--------------------------------------------------------------------------------------------------------------------------------
Вариант № 9. Циклические алгоритмы с предусловием и постусловием
Найти произведение квадратов всех двузначных чисел, кратных трем, исключая число 21. Произвольные числа вводятся последовательно с клавиатуры.
--------------------------------------------------------------------------------------------------------------------------------
Вариант № 10. Циклические алгоритмы с предусловием и постусловием
Для N произвольных пар значений переменных X и Y, вводимых с клавиатуры, найти наибольшее из чисел (х+у)/2 и (х+у/2).
-----------------------------------------------------------------------------------------------
Вариант № 11. Циклические алгоритмы с предусловием и постусловием
В последовательности чисел, вводимых с клавиатуры, найти сумму целых чисел диапазона [12;27], кратных трем, исключая числа 15 и 17.
--------------------------------------------------------------------------------------------------------------------------------
Вариант № 12. Циклические алгоритмы с предусловием и постусловием
Последовательно вводя числа с клавиатуры, найдите количество отрицательных чисел, положительных чисел и нулей. Определите среднее арифметическое всех введенных чисел.
-------------------------------------------------------------------------------------------------
Вариант № 13. Циклические алгоритмы с предусловием и постусловием
Ввести N произвольных чисел с клавиатуры. Определить, сколько из них являются простыми числами.
--------------------------------------------------------------------------------------------------
Вариант № 14. Циклические алгоритмы с предусловием и постусловием
Разработать блок-схему, которая последовательно вводит N дробных чисел и вычисляет их произведение и среднее арифметическое.
------------------------------------------------------------------------------------------------------
Вариант № 15. Циклические алгоритмы с предусловием и постусловием
Разработать блок-схему, которая вводит с клавиатуры последовательность из M дробных чисел и после ввода каждого числа выводит сумму и среднее арифметическое введенной части последовательности. Например:
Обработка последовательности дробных чисел
После ввода каждого числа нажимайте <Enter>
-> 12.3
Введено чисел: 1 Сумма: 12.30 Сред. арифметическое: 12.30
-> 15
Введено чисел: 2 Сумма: 27.30 Сред. арифметическое: 13.65
--------------------------------------------------------------------------------------------------------
Вариант № 16. Циклические алгоритмы с предусловием и постусловием
Разработать блок-схему, которая вычисляет среднее арифметическое последовательности N чисел, вводимых с клавиатуры. После ввода последнего числа программа должна вывести минимальное число последовательности. Например:
Введите количество чисел последовательности -> 5
Вводите последовательность.
-> 5.4
-> 7.8
-> 3.0
-> 1.5
-> 2.3
Среднее арифметическое: 4.00
Минимальное число: 1.5
---------------------------------------------------------------------------------------------------------------
Вариант № 17. Циклические алгоритмы с предусловием и постусловием
Разработать блок-схему, которая выводит таблицу значений функции y=(x-6)+(x+7). Диапазон изменения аргумента от -4 до 4, шаг приращения аргумента 0,5.
----------------------------------------------------------------------------------------
Вариант № 18. Циклические алгоритмы с предусловием и постусловием
Разработать блок-схему, которая последовательно вводит с клавиатуры N произвольных чисел, подсчитывает а) количество целых чисел и их сумму, б) количество дробных чисел и их произведение.
-----------------------------------------------------------------------------------------------------
Вариант № 19. Циклические алгоритмы с предусловием и постусловием
Разработать блок-схему, которая вычисляет сумму ряда: 1-1/4+1/8-1/16+1/32-...
-------------------------------------------------------------------------------------------------
Вариант № 20. Циклические алгоритмы с предусловием и постусловием
Разработать блок-схему, которая выводит таблицу квадратов первых десяти целых положительных чисел. Например:
Таблица квадратов.
----------------
Число Квадрат
----------------
11
4
9
16
25
636
749
864
981
10100
---------------------------------------------------------------------------------------------------------------
Вариант № 21. Циклические алгоритмы с предусловием и постусловием
Разработать блок-схему, которая выводит таблицу квадратов первых пяти целых положительных нечетных чисел. Например:
----------------
Число Квадрат
----------------
11
39
525
749
981
---------------------

К СОДЕРЖАНИЮ
Лабораторная работа № 4
Тема: «Программирование с использованием базовых алгоритмических конструкций»
Цель работы: формирование знаний и умений по работе с системой программирования, разработка программ, реализующих базовые алгоритмические конструкции (ветвления и циклы).
Порядок выполнения работы при формировании отчета:
Указать номер и название лабораторной работы, её цель.
Ознакомиться с индивидуальным заданием и описать его в пункте «Постановка задачи».
Создать математическую модель решения задачи, содержащую описание переменных и связывающие их формулы, описать её в пункте «Математическая модель».
Создать графическую модель решения задачи – блок-схему в пункте «Графическая модель»
Разработать программу в среде программирования и описать её в пункте «Программная модель решения задачи».
Результаты работы программы описать в пункте «Тестовая модель».
Сделать вывод исходя из цели лабораторной работы.

Краткие теоретические сведения
(см. Лабораторную работу № 1)
Индивидуальные задания (номер задания соответствует порядковому номеру учащегося в журнале)
Вариант № 1.
Ввести целое число и определить, верно ли, что в его записи есть две одинаковые цифры.
Пример:
Введите целое число: Введите целое число:
1234 1224
Нет. Да.
Вариант № 2.
Найти произведение цифр заданного четырёхзначного числа.
Пример:
Введите четырёхзначное число: 1234
Произведение цифр числа равнo 24
Вариант № 3.
Ввести целое число и определить число цифр в нем, вывести эти цифры. Найти произведение и сумму цифр числа.
Вариант № 4.
Написать программу, находящую минимальное и максимальное число в последовательности поочередно вводимых с клавиатуры чисел. Количество чисел задается во время работы программы.
Вариант № 5.
Разработать программу, выводящую квадраты и кубы 15 чисел следующей последовательности:
1, 2, 4, 7, 11, 16, …
Вариант № 6.
Разработать программу решения следующей задачи:
Начав тренировки, спортсмен в первый день пробежал 10 км. Каждый день он увеличивал дневную норму на 10% нормы предыдущего дня. Какой суммарный путь пробежит спортсмен за 4 дня.
Вариант № 7.
Разработать программу, которая определяет, верно ли, что в заданном числе все цифры стоят по возрастанию.
Пример:
Введите число: 258
Верно, цифры стоят по возрастанию.
Вариант № 8.
Разработать программу, которая определяет наибольший общий делитель двух чисел , вводимых с клавиатуры.
Вариант № 9.
Разработать программу, которая последовательно вводит с клавиатуры N произвольных чисел, подсчитывает а) количество целых чисел и их сумму, б) количество дробных чисел и их произведение.
Вариант № 10.
Разработать программу, которая вводит с клавиатуры последовательность из M дробных чисел и после ввода каждого числа выводит сумму и среднее арифметическое введенной части последовательности. Например:
Обработка последовательности дробных чисел
После ввода каждого числа нажимайте <Enter>
-> 12.3
Введено чисел: 1 Сумма: 12.30 Сред. арифметическое: 12.30
-> 15
Введено чисел: 2 Сумма: 27.30 Сред. арифметическое: 13.65
Вариант № 11.
Разработать программу, которая вычисляет среднее арифметическое последовательности N чисел, вводимых с клавиатуры. После ввода последнего числа программа должна вывести минимальное число последовательности. Например:
Введите количество чисел последовательности -> 5
Вводите последовательность.
-> 5.4
-> 7.8
-> 3.0
-> 1.5
-> 2.3
Среднее арифметическое: 4.00
Минимальное число: 1.5
Вариант № 12.
Разработать программу, которая выводит на экран таблицу умножения на 9 чисел от 2 до 9.
Ниже приведен пример:
Таблица умножения на 9:
9 x 2 = 18
9 x 3 = 27
9 x 4 = 36
9 x 5 = 45
9 х 6 = 54
9 x 7 = 63
9 x 8 = 72
9 x 9 = 81
Вариант № 13.
Разработать программу, которая выводит все делители положительного целого числа, введенного с клавиатуры.
Вариант № 14.
Разработать программу, которая выводит таблицу значений функции y=(x-2)+(x+l). Диапазон изменения аргумента от -4 до 4, шаг приращения аргумента 0,5.
Вариант № 15.
Разработать программу, которая преобразует введенное десятичное число в двоичное.
Ниже приведен пример:
Преобразование десятичного числа в двоичное
Введите целое число от 0 до 255 и нажмите <Enter>
-> 49
Десятичному числу 49 соответствует двоичное 00110001
Для завершения нажмите <Enter>
Вариант № 16.
Ввести целое число и определить, верно ли, что в его записи есть две одинаковые цифры.
Пример:
Введите целое число: Введите целое число:
1234 1224
Нет. Да.
Вариант № 17.
Найти произведение цифр заданного четырёхзначного числа.
Пример:
Введите четырёхзначное число: 1234
Произведение цифр числа равнo 24
Вариант № 18.
Ввести целое число и определить число цифр в нем, вывести эти цифры. Найти произведение и сумму цифр числа.
Вариант № 19.
Написать программу, находящую минимальное и максимальное число в последовательности поочередно вводимых с клавиатуры чисел. Количество чисел задается во время работы программы.
Вариант № 20.
Разработать программу, выводящую квадраты и кубы 15 чисел следующей последовательности:
1, 2, 4, 7, 11, 16, …
Вариант № 21.
Разработать программу решения следующей задачи:
Начав тренировки, спортсмен в первый день пробежал 10 км. Каждый день он увеличивал дневную норму на 10% нормы предыдущего дня. Какой суммарный путь пробежит спортсмен за 4 дня.
Вариант № 22.
Разработать программу, которая определяет, верно ли, что в заданном числе все цифры стоят по возрастанию.
Пример:
Введите число: 258
Верно, цифры стоят по возрастанию.
Вариант № 23.
Разработать программу, которая определяет наибольший общий делитель двух чисел , вводимых с клавиатуры.
Вариант № 24.
Разработать программу, которая последовательно вводит с клавиатуры N произвольных чисел, подсчитывает а) количество целых чисел и их сумму, б) количество дробных чисел и их произведение.
Вариант № 25.
Разработать программу, которая вводит с клавиатуры последовательность из M дробных чисел и после ввода каждого числа выводит сумму и среднее арифметическое введенной части последовательности. Например:
Обработка последовательности дробных чисел
После ввода каждого числа нажимайте <Enter>
-> 12.3
Введено чисел: 1 Сумма: 12.30 Сред. арифметическое: 12.30
-> 15
Введено чисел: 2 Сумма: 27.30 Сред. арифметическое: 13.65
Вариант № 26.
Разработать программу, которая вычисляет среднее арифметическое последовательности N чисел, вводимых с клавиатуры. После ввода последнего числа программа должна вывести минимальное число последовательности. Например:
Введите количество чисел последовательности -> 5
Вводите последовательность.
-> 5.4
-> 7.8
-> 3.0
-> 1.5
-> 2.3
Среднее арифметическое: 4.00
Минимальное число: 1.5
Вариант № 27.
Разработать программу, которая выводит на экран таблицу умножения на 9 чисел от 2 до 9.
Ниже приведен пример:
Таблица умножения на 9:
9 x 2 = 18
9 x 3 = 27
9 x 4 = 36
9 x 5 = 45
9 х 6 = 54
9 x 7 = 63
9 x 8 = 72
9 x 9 = 81
Вариант № 28.
Разработать программу, которая выводит все делители положительного целого числа, введенного с клавиатуры.
Вариант № 29.
Разработать программу, которая выводит таблицу значений функции y=(x-2)+(x+l). Диапазон изменения аргумента от -4 до 4, шаг приращения аргумента 0,5.
Вариант № 30.
Разработать программу, которая преобразует введенное десятичное число в двоичное.
Ниже приведен пример:
Преобразование десятичного числа в двоичное
Введите целое число от 0 до 255 и нажмите <Enter>
-> 49
Десятичному числу 49 соответствует двоичное 00110001
Для завершения нажмите <Enter>

К СОДЕРЖАНИЮ
Лабораторная работа № 5
Тема: «Табличная организация данных. Одномерные массивы и операторы их описания. Разработка и выполнение программ с использованием одномерных массивов»
Цель работы: формирование знаний и умений по работе с блок-схемами алгоритмов, реализующих обработку элементов одномерного массива. Их реализация на языке программирования.
Порядок выполнения работы при формировании отчета:
Указать номер и название лабораторной работы, её цель.
Ознакомиться с индивидуальным заданием и описать его в пункте «Постановка задачи».
Создать математическую модель решения задачи, содержащую описание переменных и связывающие их формулы, описать её в пункте «Математическая модель».
Создать графическую модель решения задачи – блок-схему в пункте «Графическая модель»
Разработать программу в среде программирования и описать её в пункте «Программная модель решения задачи».
Результаты работы программы описать в пункте «Тестовая модель».
Сделать вывод исходя из цели лабораторной работы.

Краткие теоретические сведения
Массив — это набор переменных одного типа, имеющих одно и то же имя. Доступ к конкретному элементу массива осуществляется с помощью индекса. В языке Паскаль все массивы располагаются в отдельной непрерывной области памяти. Первый элемент массива располагается по самому меньшему адресу, а последний — по самому большему. Массивы могут быть одномерными и многомерными.
Как и другие переменные, массив должен быть объявлен явно, чтобы компилятор выделил для него определенную область памяти (т.е. разместил массив). Здесь тип обозначает базовый тип массива, являющийся типом каждого элемента. Размер задает количество элементов массива.
Доступ к элементу массива осуществляется с помощью имени массива и индекса. Индекс элемента массива помещается в скобках после имени. Индекс первого элемента любого массива в СИ++ равен единице.
Объем памяти, необходимый для хранения массива, непосредственно определяется его типом и размером. Можно сказать, что одномерный массив — это список, хранящийся в непрерывной области памяти в порядке индексации.
К стандартным операциям при работе с массивом можно отнести: поиск максимального и минимального по значению элемента, обработку элементов по определенному алгоритму, сортировку по возрастанию или по убыванию значений элементов массива.
Сортировка массива методом парных перестановок («метод пузырька») - сравнение соседних элементов и, если нужно, их перестановка. Если за один проход сортировка не приносит нужного результата, приходится просматривать все пары элементов несколько раз (а именно, если в массиве K элементов, то алгоритм нужно повторить K-1 раз)
ПРИМЕР: Дан массив, содержащий элементы {7,8,-5,-1}. Отсортируем его по возрастанию:
Меняем пары элементов значениями 1-ый раз:
1) {7,8,-5,-1} – обмена 1-го и 2-го элементов значениями не будет;
2) {7,-5,8,-1} – обмен 2-го и 3-го элементов значениями;
3) {7,-5,-1,8} – обмен 3-го и 4-го элементов значениями;
За первый проход массив не был отсортирован, поэтом повторяем алгоритм 2-ой раз:
1) {-5,7,-1,8} – обмен 1-го и 2-го элементов значениями;
2) {-5,-1,7,8} – обмен 2-го и 3-го элементов значениями;
3) {-5,-1,7,8} – обмена 3-го и 4-го элементов значениями не будет;

Массив отсортирован.
Контрольные вопросы
Что такое массив?
Что такое размерность массива?
Какого типа могут быть элементы массива?
Какого типа могут быть индексы элементов массива?
Какими способами может быть заполнен массив? Приведите примеры.
Какие действия выполняют обычно над элементами массива?
Индивидуальные задания (номер задания соответствует порядковому номеру учащегося в журнале)
Задание к л.р.№ 5 «Одномерные массивы»
Вариант № 1.
Составить программу, заменяющую каждый элемент массива на противоположный по знаку. Вывести на экран исходный и полученный массивы (вывод массива в строку). Размерность массива произвольная.
Вариант № 2.
Сформировать массив Y значений функции Y=BX2+D при x=11,12, …20. Значения B и D вводятся с клавиатуры. Вывести полученный массив в столбец.
Вариант № 3.
Подсчитать количество отрицательных элементов массива с номерами позиций, кратных трем. Исходный массив вывести в строку. Размерность массива произвольная.
Вариант № 4.
Составить программу, позволяющую найти минимальный и максимальный элементы массива. Вывести исходный массив в строку, а также значения максимального и минимального элементов. Размерность массива произвольная.
Вариант № 5.
Написать программу, заменяющую каждый элемент, стоящий в четной позиции массива, его модулем. Вывести исходный и полученный массивы (в строку). Размерность массива произвольная.
Вариант № 6.
Составить программу, вычисляющую среднее арифметическое всех элементов массива. Вывести исходный массив в строку и значение среднего арифметического. Размерность массива произвольная.
Вариант № 7.
Составить программу, удваивающую четные по номеру элементы массива, а нечетные по номеру уменьшить вдвое. Вывести исходный и полученный массивы (в строку). Размерность массива произвольная.
Вариант № 8.
Составить программу, позволяющую посчитать количество отрицательных и положительных элементов массива. Массив вывести в строку. Размерность массива произвольная.
Вариант № 9.
Заменить элементы массива, превышающие число С, на сумму С+2*B, где B – превышение данного элемента над числом С. Вывести исходный и полученный массивы (в строку). Размерность массива произвольная.
Вариант № 10.
Составить программу нахождения произведения элементов массива, стоящих в четной позиции массива. Вывести массив в строку. Размерность массива произвольная.
Вариант № 11.
Составить программу, заменяющую каждый элемент, стоящий в четной позиции массива, на элемент, в 3 раза больший. Вывести исходный и преобразованный массив (в строку). Элементы массива принадлежат диапазону от -5 до 5.
Вариант № 12.
Подсчитать количество отрицательных, нулевых и положительных элементов массива с номерами позиций, кратных двум, начиная с первого. Размерность массива произвольная.
Вариант № 13.
Написать программу, находящую во вводимом с клавиатуры массиве все элементы, равные нулю. На экран выдать номера их позиций и значения. Размерность массива произвольная. Диапазон значений от -20 до 20.
Вариант № 14.
Составить программу, заменяющую каждый элемент массива на элемент, в 2 раза больший и противоположный по знаку. Диапазон значений от -4 до 10. Вывести исходный и полученный массивы (в строку).
Вариант № 15.
Подсчитать количество положительных элементов массива с номерами позиций, кратных трем. Вывести исходный массив в строку, размерность массива произвольная.
Вариант № 16.
Составить программу, позволяющую найти минимальный элемент массива. Подсчитать количество элементов в массиве, равных минимальному. Размерность массива
Вариант № 17.
Составить программу, вычисляющую среднее арифметическое всех положительных элементов массива. Размерность массива и диапазон значений произвольные.
Вариант № 18.
Составить программу, удваивающую четные по номеру элементы массива, а нечетные по номеру уменьшить вдвое. Размерность массива и диапазон значений произвольные.
Вариант № 19.
Составить программу, позволяющую посчитать среднее арифметическое отрицательных и положительных элементов массива. Размерность массива 10 элементов, массив заполнить путем ввода элементов с клавиатуры.
Вариант № 20.
Составить программу нахождения произведения четных по порядковому номеру элементов массива. Размерность массива 10 элементов, массив заполнить путем ввода элементов с клавиатуры.
Вариант № 21.
Дан массив из 8 чисел. Написать программу подсчета количества элементов массива, равных наибольшему элементу в этом массиве. Массив заполнить путем ввода элементов с клавиатуры.
Вариант № 22.
Дан массив из 25 целых чисел. Написать программу поиска элементов массива, равных наибольшему. Вывести на экран номера таких элементов. Заполнение с помощью датчика случайных чисел.
Вариант № 23.
Дан массив из 30 элементов. Написать программу, которая находит и выводит количество элементов массива, значение которых больше среднего арифметического значения элементов этого массива. Размерность массива и диапазон значений произвольные.
Вариант № 24.
Дан массив на 30 элементов. Написать программу, которая позволяет найти и вывести сумму элементов массива, значение которых больше среднего арифметического значения элементов этого массива. Размерность массива и диапазон значений произвольные.
Вариант № 25.
Дан массив из 25 целых чисел. Написать программу подсчета суммы положительных элементов, предшествующих максимальному элементу массива.
Вариант № 26.
Дан массив из 25 целых чисел. Написать программу вычисления суммы отрицательных элементов, предшествующих минимальному элементу.
Вариант № 27.
Дан массив из 30 элементов. Написать программу, вычисляющую произведение положительных элементов, расположенных после максимального элемента массива.
Вариант № 28.
Дан массив из 30 элементов. Написать программу, вычисляющую произведение отрицательных элементов, расположенных после минимального элемента массива.
К СОДЕРЖАНИЮ
Лабораторная работа № 6
Тема: «Табличная организация данных. Двумерные массивы и операторы их описания. Разработка и выполнение программ с использованием двумерных массивов»
Цель работы: формирование знаний и умений по работе с блок-схемами алгоритмов, реализующих обработку элементов двумерного массива. Их реализация на языке программирования.
Порядок выполнения работы при формировании отчета:
Указать номер и название лабораторной работы, её цель.
Ознакомиться с индивидуальным заданием и описать его в пункте «Постановка задачи».
Создать математическую модель решения задачи, содержащую описание переменных и связывающие их формулы, описать её в пункте «Математическая модель».
Создать графическую модель решения задачи – блок-схему в пункте «Графическая модель»
Разработать программу в среде программирования и описать её в пункте «Программная модель решения задачи».
Результаты работы программы описать в пункте «Тестовая модель».
Сделать вывод исходя из цели лабораторной работы.

Краткие теоретические сведения
Массив — это набор переменных одного типа, имеющих одно и то же имя. Доступ к конкретному элементу массива осуществляется с помощью индекса. В языке Паскаль все массивы располагаются в отдельной непрерывной области памяти. Первый элемент массива располагается по самому меньшему адресу, а последний — по самому большему. Массивы могут быть одномерными и многомерными.
Как и другие переменные, массив должен быть объявлен явно, чтобы компилятор выделил для него определенную область памяти (т.е. разместил массив). Здесь тип обозначает базовый тип массива, являющийся типом каждого элемента. Размер задает количество элементов массива.
Доступ к элементу двумерного массива осуществляется с помощью имени массива и индексов (индекс нахождения в строке и индекс нахождения в столбце). Индексы элемента массива помещаются в скобках после имени. Индекс первого элемента любого массива в языке Паскаль равен [0,0].
Объем памяти, необходимый для хранения массива, непосредственно определяется его типом и размером. Можно сказать, что массив — это список, хранящийся в непрерывной области памяти в порядке индексации.
К стандартным операциям при работе с массивом можно отнести: поиск максимального и минимального по значению элемента, обработку элементов по определенному алгоритму, сортировку по возрастанию или по убыванию значений элементов массива.
Контрольные вопросы
Что такое двумерный массив?
Что такое размерность двумерного массива?
Какого типа могут быть элементы двумерного массива?
Какого типа могут быть индексы элементов двумерного массива?
Какими способами может быть заполнен двумерный массив? Приведите примеры.
Какие действия выполняют обычно над элементами двумерного массива?
Индивидуальные задания (номер задания соответствует порядковому номеру учащегося в журнале)
Задание к л.р.№ 6 «Двумерные массивы»
Вариант № 1.
Образовать матрицу R в три строки и четыре столбца, все элементы которой отвечают формуле :R[i,j]=i+j*(i-j)
Подсчитать сумму элементов 2-ой строки матрицы.
Вариант № 2.
Образовать двумерный массив ABC[5][5] и вывести его на экран, если:
ABC[i,j]=i*j, если i<j3, если i=ji-j, если i>jПодсчитать количество нулевых элементов массива.
Вариант № 3.
Заменить положительные элементы двумерной матрицы их целыми частями, а отрицательные – их модулями.
Подсчитать произведение элементов 2-ой строки матрицы.
Вариант № 4.
Получить квадратную матрицу произвольного размера из элементов, отвечающих формуле:
A[i,j]=i*j+1 Подсчитать среднее арифметическое элементов главной диагонали матрицы.
Вариант №5.
Найти количество элементов двумерной матрицы, превосходящих 10 и меньших 20. Суммировать такие элементы.
Вариант № 6.
Получить квадратную матрицу произвольного размера, если каждый её элемент
B[i,j]=i, если i>j5, если i=jj, если i<jНайти среднее арифметическое элементов, лежащих ниже главной диагонали.
Вариант № 7.
Определить произведение не лежащих на главной диагонали элементов квадратной матрицы произвольного размера, каждый элемент которой
R [ i , j ] = | i – j |
Вариант № 8.
Вычислить среднее арифметическое и среднее геометрическое всех элементов двумерной матрицы произвольного размера.
Вариант № 9.
Найти сумму элементов квадратной матрицы произвольного размера
а) расположенных на главной диагонали
б) расположенных выше главной диагонали
в) расположенных ниже главной диагонали
Вариант № 10.
Найти сумму кубов элементов главной диагонали квадратной матрицы произвольного размера. Подсчитать количество отрицательных элементов матрицы.
Вариант № 11.
Подсчитать число отрицательных, нулевых и положительных элементов двумерного квадратного массива, лежащих:
а) выше главной диагонали
б) ниже главной диагонали.
Вариант № 12.
Найти произведение элементов квадратной матрицы произвольного размера, расположенных а)выше главной диагонали, б) ниже главной диагонали, в) на главной диагонали.
Вариант № 13.
Найти произведение элементов квадратной матрицы, лежащих выше главной диагонали, если каждый элемент такой матрицы A [ i, j] = | j –2i |
Вариант № 14.
Найти среднее арифметическое элементов двумерной матрицы, каждый элемент которой Bi[j]=j*i+2Вариант № 15.
Найти сумму квадратов элементов, расположенных ниже главной диагонали квадратной матрицы произвольного размера. Каждый элемент матрицы вычисляется по формуле С [ i, j] = 2i + 2j
Вариант № 16.
В двумерном массиве произвольной размерности подсчитать количество элементов, равных наибольшему элементу в этом массиве. Вывести значение наибольшего элемента.
Вариант № 17.
Дан двумерный квадратный массив из 16 элементов. Написать программу, которая находит и выводит количество элементов массива, значение которых больше среднего арифметического значения элементов этого массива.
Вариант № 18.
Составить программу автоматического заполнения матрицы B следующего вида:
1 2 3 4 5 6
0 1 2 3 4 5
-1 0 1 2 3 4
Вариант № 19.
Подсчитать в двумерном квадратном массиве целых чисел количество четных чисел и их сумму. Размерность массива произвольная.
Вариант № 20.
Подсчитать в двумерном массиве произвольной размерности сумму элементов каждой строки.
Вариант № 21.
Составить программу автоматического заполнения матрицы следующего вида:
5 2 2
-1 5 2
-1 -1 5
Вариант № 22.
Дан квадратный массив из 25 целых чисел. Написать программу поиска элементов массива, равных наибольшему. Вывести на экран номера позиций таких
Вариант № 23.
Дан квадратный массив на 16 элементов. Написать программу, которая позволяет найти и вывести сумму элементов массива, значение которых больше среднего арифметического значения элементов этого массива.
Вариант № 24.
Составить программу автоматического заполнения матрицы M следующего вида:
8 7 6
5 4 3
2 1 0
Вариант № 25.
Подсчитать в двумерном массиве целых чисел количество нечетных чисел и их произведение и сумму.
Вариант № 26.
В двумерном массиве произвольной размерности найти максимальный из четных и минимальный из нечетных элементов массива.
Вариант № 27.
Дан целочисленный прямоугольный массив А. Составьте программу, которая меняет местами столбцы, содержащие максимальный и минимальный элементы (предполагается, что такие элементы единственные)
Вариант № 28 .
Дан целочисленный прямоугольный массив А. Составьте программу, которая меняет местами строки, содержащие максимальный и минимальный элементы (предполагается, что такие элементы единственные)

К СОДЕРЖАНИЮ
Лабораторная работа № 7
Тема: «Обработка символьных и строковых данных. Разработка и выполнение программ с использованием символьных и строковых данных, а также процедур и функций их обработки»
Цель работы: формирование знаний и умений по работе с блок-схемами алгоритмов, реализующих обработку символьных и строковых данных. Реализация алгоритмов на языке программирования.
Порядок выполнения работы при формировании отчета:
Указать номер и название лабораторной работы, её цель.
Ознакомиться с индивидуальным заданием и описать его в пункте «Постановка задачи».
Создать математическую модель решения задачи, содержащую описание переменных и связывающие их формулы, описать её в пункте «Математическая модель».
Создать графическую модель решения задачи – блок-схему в пункте «Графическая модель»
Разработать программу в среде программирования и описать её в пункте «Программная модель решения задачи».
Результаты работы программы описать в пункте «Тестовая модель».
Сделать вывод исходя из цели лабораторной работы.

Краткие теоретические сведения
Язык СИ++ может обрабатывать не только числа, но и символы. Это даёт возможность представлять в программах тексты и выполнять над ними некоторые операции, обрабатывать различные ведомости, документы, справочники и т.д.
Значениями символьного типа является всё множество символов ПК. Каждому символу приписывается целое число в диапазоне 0...255. Это число служит кодом внутреннего представления символов. Для кодировки используется код ASCII (Американский стандартный код для обмена информацией). Символьная константа (литера) - это символ, заключенный в апострофы, например: 'A', 'R', '+', '7'. Внешние апострофы являются признаком символьной константы, которая занимает 1 байт памяти.
Символьная переменная принимает значение одного символа. В разделе переменных она обозначается описателем символьного типа.
 
Строковые данные
Строковые данные - это последовательность символов произвольной длины (до 255 символов). Размер строки указывают в скобках, но если размер не указан, то он считается равным 255.
 
Для строковых данных применимы операции объединения (конкатенации) и сравнения.
К СОДЕРЖАНИЮ
Индивидуальные задания (номер задания соответствует порядковому номеру учащегося в журнале)
Уровень 1
Лабораторная работа №7 “Обработка символьных и строковых данных»
ВАРИАНТ 1.
Подсчитать сколько раз среди символов заданной строки встречается буква «F», определить длину строки.
ВАРИАНТ 2.
Составить программу, которая печатает заданное слово задом наперед, определить длину строки.
ВАРИАНТ 3.
Из заданной строки получить новую, выбросив из нее все точки. Вывести на экран полученную строку.
ВАРИАНТ 4.
Подсчитать количество цифр в заданной строке. Если их нет, выдать соответствующее сообщение. Определить длину введенной строки.
ВАРИАНТ 5.
Определить количество слов во введенном с клавиатуры тексте, определить количество слогов во введенном с клавиатуры слове.
ВАРИАНТ 6.
Из заданной строки получить новую, удалив все звездочки («*») и повторив каждый символ, отличный от звездочки. Распечатать полученную строку.
ВАРИАНТ 7.
В заданной строке подсчитать отдельно количество символов «а», «b», «с», «d».
ВАРИАНТ 8.
Написать программу, которая проверяет, является ли введенная с клавиатуры строка двоичным числом. Определить количество разрядов числа.
ВАРИАНТ 9.
Из заданной строки получить новую, заменив в ней все символы после первой звездочки («*») знаком «-» (если в строке нет звездочек, оставить ее без изменения). Распечатать полученную строку.
ВАРИАНТ 10.
Выдать номер позиции заданной строки, в которой впервые встречается буква «G». Если такой буквы в строке нет, выдать сообщение об этом.
ВАРИАНТ 11.
В заданной строке подсчитать количество букв латинского алфавита и количество цифр.
ВАРИАНТ 12.
Из заданной строки получить новую, удалив все символы, не являющиеся буквами латинского алфавита.
ВАРИАНТ 13.
Написать программу, которая проверяет, является ли введенная с клавиатуры строка шестнадцатеричным числом.
ВАРИАНТ 14.
Из заданной строки получить новую, заменив все запятые на точки. Распечатать полученную строку. Определить количество символов строки.
ВАРИАНТ 15.
Выдать номер позиции заданной строки, в которой в пятый раз встречается буква «W». Если такой позиции нет, выдать сообщение об этом.
ВАРИАНТ 16.
В заданной строке преобразовать все заглавные буквы латинского алфавита в строчные, а строчные в заглавные.
ВАРИАНТ 17.
Проверить, является ли заданное слово палиндромом («перевертышем», как слова КАЗАК, ШАЛАШ и т.д.)
ВАРИАНТ 18.
Произвести последовательную замену каждого 2-го символа строки на восклицательный знак.
ВАРИАНТ 19.
Преобразовать введенную вопросительную фразу в восклицательную (если исходная фраза не является вопросительной, повторить ввод)ВАРИАНТ 20.
В заданной строке определить порядковые номера всех цифр. Если цифр нет, выдать соответствующее сообщение.
ВАРИАНТ 21.
Подсчитать сколько раз среди символов заданной строки встречается буква «S», выдать номера позиций встреченной буквы, определить длину строки.
ВАРИАНТ 22.
Составить программу, которая печатает заданное слово задом наперед, определить длину строки.
ВАРИАНТ 23.
Из заданной строки получить новую, удалив из нее все запятые. Если их нет, выдать соответствующее сообщение. Вывести на экран полученную строку.
ВАРИАНТ 24.
Подсчитать количество знаков, отличных от цифр в заданной строке. Если их нет, выдать соответствующее сообщение. Определить длину введенной строки и количество цифр в ней.
ВАРИАНТ 25.
Определить количество слов во введенном с клавиатуры тексте, определить количество слогов во введенном с клавиатуры слове.
ВАРИАНТ 26.
Из заданной строки получить новую строку, удалив все знаки препинания. Распечатать полученную новую строку.
ВАРИАНТ 27.
В заданной строке подсчитать количество всех символов, кроме «а», «b», «с», «d».
ВАРИАНТ 28.
На вход программе подаются сведения о номерах школ учащихся, участвующих в олимпиаде. Написать программу, которая будет выводить информацию, из какой школы было меньше всего участников (но из этой школы был хотя бы один участник).
Номер школы не более чем двузначный.
Рекомендуемый вид экрана:
Введите количество участников олимпиады: 7
Ф.И. участника | № школы |
---------------------------------------------------
Иванов Петр 7
Петров Василий67
Коробков Дмитрий89
Дроздов Николай17
Кузин Владимир 7
Степанов Кирилл89
Алмазов Константин67

Меньше всего участников было из школы № 17
К СОДЕРЖАНИЮ
Индивидуальные задания к лабораторной работе № 7
“Обработка символьных и строковых данных”
(номер задания соответствует порядковому номеру учащегося в журнале)
Уровень 2
1. Дан непустой текст из заглавных русских букв, за которым следует точка. Определить, упорядочены ли буквы по алфавиту.
2. Напечатать в алфавитном порядке все различные строчные русские буквы, входящие в заданный текст из 200 литер.
3. Известно, что в строке S находится не более 40 латинских букв. Напечатать эту строку, все вхождения "abc" заменив на "def".
4. Дана строка, состоящая из 10 слов. За последним словом точка. Напечатать эту же последовательность слов, но в обратном порядке.
5. Дана строка, состоящая из 10 слов. За последним словом точка. Напечатать эту же последовательность слов, но в алфавитном порядке.
6. Дана строка, состоящая из 10 слов. Напечатать те слова последовательности, у которых буквы упорядочены по алфавиту.
7. Дана строка, состоящая из 10 слов. Напечатать те слова последовательности, которые симметричны.
8. Дана последовательность, состоящая из 10 слов. Напечатать те слова последовательности, в которых первая буква слова входит в него ещё раз.
9. Дана последовательность, состоящая из 10 слов. Напечатать все слова последовательности, предварительно преобразовав каждое из них по следующему правилу: перенести первую букву в конец слова.
10.Дана последовательность, состоящая из 10 слов. Напечатать все слова последовательности, предварительно удалив из слов все последующие вхождения первой буквы.
11.Дана последовательность, состоящая из 10 слов. Напечатать все слова последовательности, удалив из каждого слова нечётные буквы, если слово имеет нечётное количество символов.
12.Дан текст из 60 символов. Напечатать этот текст, подчёркивая (ставя минусы в соответствующих позициях следующей строки) все входящие в него гласные.
13.Дана последовательность, состоящая из 10 слов. Напечатать все различные слова, указав для каждого из них число его вхождений в последовательность.
14.В строке S находится не более 80 латинских букв. Напечатать эту строку, удалив все вхождения th.
15.В строке S находится не более 80 латинских букв. Напечатать эту строку, добавляя после каждой буквы "q" букву "u".
16. Составить программу, заменяющую каждую встреченную в слове заданную букву на заданное сочетание букв (например, в слове ЭВМ заменить букву В сочетанием ТИ; получим слово ЭТИМ)
17. Составить программу, подсчитывающую, сколько раз в заданном слове встречается данное сочетание букв (например, в слове КУКУРУЗА сочетание КУ встречается 2 раза)
18. Составить программу, вычеркивающую из слова заданную букву. Если в слове такой буквы нет, то выдать соответствующее сообщение (например, из слова ДОЛИНА вычеркнуть букву О – получиться слово ДЛИНА).
19. Составить программу удаления из данного текста некоторой его части (например, из слова КЛУБОК вычеркиваем ЛУБ, получим КОК)
20. Составить программу, которая форматирует текст: если после знака препинания нет пробела, то программа добавляет его. Если предложение начинается со строчной буквы, то она заменяется на прописную.
21. Составить программу, заменяющую каждую встреченную в слове заданную букву на заданное сочетание букв (например, в слове ЭВМ заменить букву В сочетанием ТИ; получим слово ЭТИМ)
22.Дан текст, состоящий не менее чем из 5 слов. Напечатать все слова из текста, отличные от слова, введенного с клавиатуры.
23. Дано предложение, состоящее не менее чем из 5 слов. Напечатать текст, состоящий из последних букв всех слов предложения.
24.Дано предложение, состоящее не менее чем из 5 слов. Напечатать все слова из предложения, содержащие ровно две буквы "d".
25.Даны два предложения, состоящие не менее чем из 5 слов. Слова каждого предложения заменить на совпадающие с ними по длине слова из другого предложения (Заменять на соответствующие по счёту слова - например, второе слово первого предложения из 5 букв заменить на второе встретившееся слово из 5 букв во втором).

26.Даны два предложения. Напечатать те слова, которые есть и в первом предложении и во втором.
27.Дано предложение. Удалить из него пробелы и буквы "ъ", "ы", "ь". Напечатать.
28.Дано предложение. Перевернуть все его слова и вывести на экран.
29.Дана строка, содержащая 60 символов. После каждого пятого символа вставить символ пробела. Напечатать результат.
30.Дано предложение, состоящее из 10 слов. Напечатать все одинаковые слова, указав для каждого из них число его вхождений в предложение.
31.Дана последовательность, состоящая из 10 слов. Напечатать все слова последовательности, предварительно удалив из слов все последние буквы.
32.Даны две последовательности, состоящие из 5 слов. Составить из них одну строку включая в неё слова то из одной то из другой последовательности ставя между ними символ пробела. Вывести результат.
33.Дано предложение. В каждом слове удалить двойные буквы.
34.Дана строка содержащая русские и латинские буквы. Определить каких (русских или латинских) больше и насколько.
35.Дано предложение. Удалить из него те буквы, которые являются окончанием хотя бы одного слова.
36.Дана строка содержащая русские буквы. Произвести аллитерацию. Т.е. заменить все русские буквы на созвучные с ними латинские. Вывести исходную строку и результат.
37.По аналогии с заданием 32 заменить латинские буквы русскими.
38.Дано предложение, содержащее русские и латинские буквы. Удалить из него латинские буквы.
39.Дана строка символов. Удалить из неё все повторно встречающиеся символы.
40.Напечатать в алфавитном порядке все различные строчные латинские буквы, входящие в заданный текст из 100 символов.
41.Дана строка, состоящая из 9 слов. За последним словом точка. Напечатать последовательность тех же слов, но в порядке, обратном алфавитному.
42.Дана последовательность, состоящая из 10 слов. Перевернуть те слова последовательности, в которых последняя буква слова входит в него ещё раз. Вывести результат.
43.Дана последовательность, состоящая из 10 слов. Напечатать все слова последовательности, предварительно преобразовав каждое из них по следующему правилу: поменять местами первую и последнюю букву слова.
44.Дана последовательность, состоящая из 10 слов. Напечатать все слова последовательности, удалив из неё те слова, в которых есть двойные буквы.
45.Дана последовательность, состоящая из 10 слов. Напечатать те слова последовательности, которые имеют нечётное количество символов.
46.Дан текст из 60 символов. Напечатать этот текст, удалив все входящие в него гласные.
43.Дана последовательность, состоящая из 10 слов. Напечатать все повторяющиеся слова, указав для каждого из них число его вхождений в последовательность.
44.В строке S находится не более 70 латинских букв. Удалить из неё строчные буквы. Вывести результат.
45.В строке S находится не более 80 латинских букв. Напечатать эту строку, добавляя перед каждой буквой "x" букву "z".
46.Дан текст, состоящий не менее чем из 5 слов. Напечатать все слова из текста, содержащие только латинские буквы.
47.Дано предложение, состоящее не менее чем из 5 слов. Напечатать текст, состоящий из первых букв всех слов предложения.
48.Дано предложение, состоящее не менее чем из 5 слов. Напечатать все слова из предложения, содержащие ровно одну букву "s".

49.Даны два предложения. Напечатать те слова, которые есть в первом предложении, но нет во втором.
50.Дано предложение. Удалить из него пробелы и буквы "э", "ю", "я". Выдать результат.
51.Даны две строки. Напечатать те символы, которые есть в первой строке, но нет во второй.
52.Даны две строки. Напечатать в алфавитном порядке чётные символы этой строки.
53.Дана последовательность, состоящая из 10 слов. Напечатать все слова последовательности, предварительно удалив из слов все первые буквы.
54.Даны две последовательности, состоящие из 5 слов. Составить из них текст включая в неё слова, из первой и второй последовательности, предварительно удалив в каждом слове первой последовательности первые буквы, а во второй вторые. Вывести результат.
55.Дано предложение. В каждом нечётном слове удалить латинские буквы, в каждом чётном русские.
56.Дана строка содержащая русские и латинские буквы. Определить каких (русских или латинских) больше и если больше латинских удалить русские, если больше русских удалить латинские.
57.Дано предложение. Удалить из него те буквы, которые являются вторыми по счёту хотя бы одном слове предложения.58.Дана строка содержащая русские и латинские буквы. Заменить все русские буквы на созвучные с ними латинские, если русских больше или наоборот, если больше латинских. Вывести исходную строку и результат.
59.Дано предложение. Удалить из каждого слова все чётные буквы и вывести результат.
60.Дана последовательность из 10 слов. Удалить из неё слова, которые содержат и русские, и латинские буквы.
К СОДЕРЖАНИЮ
Лабораторная работа № 8
Тема: «Подпрограммы-функции. Передача параметров. Разработка и выполнение программ с использованием функций»
Цель работы: формирование знаний и умений по работе с блок-схемами алгоритмов, реализующих функции обработки данных. Реализация алгоритмов на языке программирования.
Порядок выполнения работы при формировании отчета:
Указать номер и название лабораторной работы, её цель.
Ознакомиться с индивидуальным заданием и описать его в пункте «Постановка задачи».
Создать математическую модель решения задачи, содержащую описание переменных и связывающие их формулы, описать её в пункте «Математическая модель».
Создать графическую модель решения задачи – блок-схему в пункте «Графическая модель»
Разработать программу в среде программирования и описать её в пункте «Программная модель решения задачи».
Результаты работы программы описать в пункте «Тестовая модель».
Сделать вывод исходя из цели лабораторной работы.

Краткие теоретические сведения
По мере усложнения программ следует делить их на небольшие легко управляемые части, называемые функциями.
Функция - это логически самостоятельная часть программы, которая применяется для выполнения определенных действий в рамках общей программы. Программа на языке С состоит из одной или нескольких функций.
Программист сам решает какие именно действия вывести в функции. Особенно удобно применять функции для многократно повторяющихся действиях. Функция является ПОДПРОГРАММОЙ вашей программы.
Если программе необходимо выполнить определенную задачу, то она вызывает соответствующую функцию, обеспечивая эту функцию информацией, которая ей понадобится в процессе обработки, т.е. функция может получать параметры из главной программы и возвращать значение в главную программу. По мере увеличения ваших программ использование функций становится их неотъемлемой необходимостью.
При работе с функцией надо указать:
имя;
тип возвращаемого функцией значения (в главную программу),
перечень аргументов (информацию, которую программа передает функции) в круглых скобках после имени функции. Если аргументов нет, то в скобках пишется VOID – «пустой».
В теле функции выполняются какие-либо действия (ради них и создается функция) и оператором RETURN результат работы возвращается в точку вызова функции:
[тип_данных] имя_функции (перечень_аргументов | void)
{
описание данных
Операторы
[return (выражение)]
}
Некоторые стандартные функции
math.h — заголовочный файл стандартной библиотеки языка программирования С, содержащий математические функции. Имя Описание
cos(x) косинус
sin(x) синус
tan(x) тангенс
acos(x) арккосинус
asin(x) арксинус
atan(x) арктангенс
fabs(x) абсолютная величина (числа с плавающей точкой)
pow(x,y) результат возведения x в степень y, xy
floor(x) округление до ближайшего меньшего целого числа
ceil(x) округление до ближайшего большего целого числа
log10(x) логарифм по основанию 10
sqrt(x) квадратный корень
exp(x) вычисление экспоненты
fmod(x) вычисление остатка от деления нацело для чисел с плавающей точкой
frexp(x) разбивает число с плавающей точкой на мантиссу и показатель степени.
ldexp(x) умножение числа с плавающей точкой на целую степень двух
log(x) натуральный логарифм
modf(x,p) извлекает целую и дробную части (с учетом знака) из числа с плавающей точкой
abs(x) абсолютное значение целого числа
fabs(x) абсолютное значение вещественного числа
Слово void, предшествующее имени функции, указывает функции не возвращать значение.
Подобно этому, слово void, содержащееся внутри круглых скобок, указывает компилятору, что функция не использует параметры (информацию, которую программа передает функции).
ПРИМЕР: Следующая программа использует функцию message для вывода сообщения на экран:
#include <iostream.h>
void message (void)
{  
cout<<"Привет, учусь программировать на C++!!!" << endl;
}
void main (void)
{
cout<<“*****************************************************”<<endl;
   message();
   cout<<"******************************************************"<<endl;
}
Программа встречает вызов функции и запускает выполнение операторов в функции messsage. После того, как программа выполнит единственный оператор функции, она возвращается обратно в main и продолжает свое выполнение с оператора, непосредственно следующего за вызовом функции.
Индивидуальные задания (номер задания соответствует порядковому номеру учащегося в журнале)
Вариант № 1. «Подпрограммы-функции»
Создать подпрограмму-функцию для вычисления и вывода на экран суммы N целых чисел, где N задается в виде параметра функции.
Вариант № 2. «Подпрограммы-функции»
Создать подпрограмму-функцию для вычисления и вывода на экран произведения М чисел, где М задается в виде параметра функции.

Вариант № 3. «Подпрограммы-функции»
Создать подпрограмму-функцию для вычисления и вывода на экран разницы максимального и минимального из К чисел, где К задается в виде параметра функции.
Вариант № 4. «Подпрограммы-функции»
Создать подпрограмму-функцию для вычисления и вывода на экран среднего арифметического N чисел, где N задается в виде параметра функции.
Вариант № 5. «Подпрограммы-функции»
Создать подпрограмму-функцию для вычисления и вывода на экран периметра треугольника, где длины его сторон задаются в виде параметров функции.
Вариант № 6. «Подпрограммы-функции»
Создать подпрограмму-функцию для вычисления и вывода на экран минимального из М чисел, где М задается в виде параметра функции.
Вариант № 7. «Подпрограммы-функции»
Создать подпрограмму-функцию для вычисления и вывода на экран периметра любого треугольника, где его стороны задаются в виде параметров функции.
Вариант № 8. «Подпрограммы-функции»
Создать подпрограмму-функцию для вычисления и вывода на экран максимального из N чисел, где N задается в виде параметра функции.

Вариант № 9. «Подпрограммы-функции»
Создать подпрограмму-функцию для вычисления и вывода на экран площади прямоугольного треугольника, где длины его катетов задаются в виде параметров функции.
Вариант № 10. «Подпрограммы-функции»
Создать подпрограмму-функцию для вычисления и вывода на экран разницы между наибольшим и наименьшим из трех чисел, которые задаются в виде параметров функции. Вариант № 11. «Подпрограммы-функции»
Создать подпрограмму-функцию для вычисления и вывода на экран суммы четных значений для N целых чисел. N задается в виде параметра функции.
Вариант № 12. «Подпрограммы-функции»
Создать подпрограмму-функцию для вычисления и вывода на экран объема цилиндра, где исходные величины для вычисления объема цилиндра задаются в виде параметров функции.
Вариант № 13. «Подпрограммы-функции»
Создать подпрограмму-функцию для вычисления и вывода на экран площади любого треугольника, где исходные величины для вычисления площади задаются в виде параметров функции.
Вариант № 14. «Подпрограммы-функции»
Создать подпрограмму-функцию для вычисления и вывода на экран площади трапеции, где исходные величины для вычисления площади задаются в виде параметров функции.
Вариант № 15. «Подпрограммы-функции»
Создать подпрограмму-функцию для вычисления и вывода на экран объема шара, где исходные величины для вычисления объема задаются в виде параметров функции.
Вариант № 16. «Подпрограммы-функции»
Создать подпрограмму-функцию для вычисления и вывода на экран суммы Т целых чисел, где Т задается в виде параметра функции.
Вариант № 17. «Подпрограммы-функции»
Создать подпрограмму-функцию для вычисления и вывода на экран произведения L чисел, где L задается в виде параметра функции.

Вариант № 18. «Подпрограммы-функции»
Создать подпрограмму-функцию для вычисления и вывода на экран произведения нечетных из Р чисел, где Р задается в виде параметра функции.
Вариант № 19. «Подпрограммы-функции»
Создать подпрограмму-функцию для вычисления и вывода на экран периметра многоугольника, где количество сторон и длины сторон задаются в виде параметров функции.
Вариант № 20. «Подпрограммы-функции»
Создать подпрограмму-функцию для вычисления и вывода на экран произведения ненулевых значений из М чисел, где М задается в виде параметра функции.
Вариант № 21. «Подпрограммы-функции»
Создать подпрограмму-функцию для вычисления и вывода на экран периметра любого четырехугольника, где его стороны задаются в виде параметров функции.
Вариант № 22. «Подпрограммы-функции»
Создать подпрограмму-функцию для вычисления и вывода на экран площади прямоугольника, где исходные величины для вычисления площади задаются в виде параметров функции.
Вариант № 23. «Подпрограммы-функции»
Создать подпрограмму-функцию для вычисления и вывода на экран площади ромба, где исходные величины для вычисления площади задаются в виде параметров функции.
Вариант № 24. «Подпрограммы-функции»
Создать подпрограмму-функцию для вычисления и вывода на экран площади круга, где координаты центра и одной из точек окружности задаются в виде параметров функции.
Вариант № 25. «Подпрограммы-функции»
Создать подпрограмму-функцию для вычисления и вывода на экран максимального, минимального и среднего арифметического для пяти чисел, которые задаются в виде параметров функции.
Вариант № 26. «Подпрограммы-функции»
Создать подпрограмму-функцию для вычисления и вывода на экран суммы положительных из Т целых чисел, где Т задается в виде параметра функции.
Вариант № 27. «Подпрограммы-функции»
Создать подпрограмму-функцию для определения и вывода на экран суммы N целых четных чисел, где N задается в виде параметра функции.
Вариант № 28. «Подпрограммы-функции»
Создать подпрограмму-функцию для вычисления и вывода на экран площади сектора, где исходные величины для вычисления площади задаются в виде параметров функции.
Вариант № 29. «Подпрограммы-функции»
Создать подпрограмму-функцию для вычисления и вывода на экран объема куба, где исходные величины для вычисления объема задаются в виде параметров функции.
Вариант № 30. «Подпрограммы-функции»
Создать подпрограмму-функцию для вычисления и вывода на экран площади параллелограмма, где исходные величины для вычисления площади задаются в виде параметров функции.
Вариант № 31. «Подпрограммы-функции»
Создать подпрограмму-функцию для определения, одного ли знака два вводимых числа, где исходные данные задаются в виде параметров функции.
Вариант № 32. «Подпрограммы-функции»
Создать подпрограмму-функцию для определения, является ли вводимое число простым. Исходная величина задается в виде параметра функции.
К СОДЕРЖАНИЮ
Лабораторная работа № 9
Тема: «Работа с файлами. Разработка и выполнение программ с использованием файлов, а также процедур и функций их обработки»
Цель работы: формирование знаний и умений по работе с блок-схемами алгоритмов, реализующих обработку файлов. Реализация алгоритмов на языке программирования.
Порядок выполнения работы при формировании отчета:
Указать номер и название лабораторной работы, её цель.
Ознакомиться с индивидуальным заданием и описать его в пункте «Постановка задачи».
Создать математическую модель решения задачи, содержащую описание переменных и связывающие их формулы, описать её в пункте «Математическая модель».
Создать графическую модель решения задачи – блок-схему в пункте «Графическая модель»
Разработать программу в среде программирования и описать её в пункте «Программная модель решения задачи».
Результаты работы программы описать в пункте «Тестовая модель».
Сделать вывод исходя из цели лабораторной работы.

Индивидуальные задания (номер задания соответствует порядковому номеру учащегося в журнале)
Вариант № 1.
Создать на диске два файла S и V (формат *.txt), заполнить их числами. Написать программу, записывающую в файл с именем SV сначала элементы файла S, затем элементы файла V.
Вариант № 2.
Написать программу, создающую выходной файл с именем А, содержимым которого будет являться текст, введенный с клавиатуры. Найти количество символов во введенном тексте.
Вариант № 3.
В файле CN записаны целые числа. Написать программу, которая в файл С записывает четные числа, а в файл N – нечетные.
Вариант № 4.
Написать программу, создающую текстовый файл, содержащий семь десятичных чисел. Найти максимальное число, которое также вывести в этот файл.
Вариант № 5.
Файл на диске содержит текст (формат *.txt). Написать программу, выводящую на экран его содержимое.
Вариант № 6.
Создать файл F, элементами которого являются целые числа. Ввести с клавиатуры число в переменную К. Найти все элементы, большие числа К и записать их в файл Н.
Вариант № 7.
Создать файл D, элементы которого являются целыми числами. Найти все элементы файла D, являющиеся четными, и записать их в файл С.
Вариант № 8.
Создать файл K, элементы которого являются целыми числами. Записать в файл КW квадраты всех четных чисел исходного файла, а в файл KB - кубы всех нечетных.
Вариант № 9.
В файле A записаны целые числа. Написать программу, которая в файл P записывает положительные числа, а в файл O – отрицательные числа.
Вариант № 10.
Файл содержит цифры. Подсчитать количество цифр '5' в файле.
Вариант № 11.
Файл содержит числа. Найти среднее арифметическое всех положительных чисел файла.
Вариант № 12.
Создать файл К, элементы которого являются целые числа. Переписать в файл М все элементы файла, не равные нулю, найти их сумму. Программа должна выполнять заполнение файла данными и чтение данных из файла.
Вариант № 13.
Файл содержит числа. Найти сумму чисел, предшествующих первому отрицательному числу в файле.
Вариант № 14.
Файл содержит числа. Найти произведение чисел из файла, меньших заданного числа В.
Вариант № 15.
Файл содержит текст. Вывести содержимое на экран. Подсчитать количество символов в тексте.
Вариант № 16.
Записать в файл последовательного доступа N чисел. Найти разность первого и последнего компонентов файла.
Вариант № 17.
Создать на диске два числовых файла. Записать их содержимое в третий файл (в две строки).
Вариант № 18.
Записать в текстовый файл К целых чисел. Найти произведение наибольшего и наименьшего из чисел.
Вариант № 19.
В файле хранятся целые числа. Написать программу, которая создает еще два выходных файла – файл, содержащий отрицательные числа и файл с положительными числами.
Вариант № 20.
В файле хранятся числа. Написать программу, которая находит среднее арифметическое отрицательных чисел файла.
Вариант № 21.
Создать файл, элементами которого являются целые числа. Ввести с клавиатуры число в переменную В. Найти все элементы, меньшие числа В, и записать их в новый файл.Вариант № 22.
Создать файл, элементы которого являются целыми числами. Найти все элементы файла, являющиеся четными, подсчитать их количество и записать эти числа в новый файл.
Вариант № 23.
Создать файл с целыми числами (формат *.txt). На основе этого файла создать еще два: первый должен содержать квадраты всех чисел исходного файла, а второй - кубы всех нечетных чисел исходного файла.
Вариант № 24.
В файле на диске записаны целые числа. Написать программу, которая создает еще два файла, в один из которых записываются положительные числа, а в другой файл – отрицательные числа.
Вариант № 25.
Файл содержит цифры. Подсчитать количество пятерок и семерок в файле.
Вариант № 26.
Файл содержит числа. Найти среднее арифметическое всех положительных чисел файла.
Вариант № 27.
Файл содержит числа. Найти произведение чисел, предшествующих первому нулю в файле.
Вариант № 28.
Найти произведение чисел из файла, меньших заданного числа K, введенного с клавиатуры.
Вариант № 29.
Файл содержит числа. Найти произведение чисел, находящихся после первого встреченного нуля в файле.
Вариант № 30.
Записать в текстовый файл К целых чисел. Найти частное наибольшего и наименьшего из чисел.
К СОДЕРЖАНИЮ
Лабораторная работа № 10
Тема: «Структуры. Разработка и выполнение программ с использованием структур»
Цель работы: формирование знаний и умений по работе с блок-схемами алгоритмов, реализующих структуры. Реализация алгоритмов на языке программирования.
Порядок выполнения работы при формировании отчета:
Указать номер и название лабораторной работы, её цель.
Ознакомиться с индивидуальным заданием и описать его в пункте «Постановка задачи».
Создать математическую модель решения задачи, содержащую описание переменных и связывающие их формулы, описать её в пункте «Математическая модель».
Создать графическую модель решения задачи – блок-схему в пункте «Графическая модель»
Разработать программу в среде программирования и описать её в пункте «Программная модель решения задачи».
Результаты работы программы описать в пункте «Тестовая модель».
Сделать вывод исходя из цели лабораторной работы.
Индивидуальные задания (номер задания соответствует порядковому номеру учащегося в журнале)
Вариант № 1.
Создать СТРУКТУРУ, содержащую сведения по учету дисковых накопителей для персональных компьютеров.
Программа должна производить:
подсчет количества ПК с объемом накопителя более 60 Гб:
вывод в виде таблицы информации о ПК фирмы «ОК».
Структура содержит следующие поля: 1) марка: 2) количество поверхностей: 3) фирма-изготовитель: 4) время доступа: 5) интерфейс: 6) объем накопителя.
Вариант № 2.
Создать СТРУКТУРУ, содержащую сведения об учете выполнения работ. Программа должна производить:
подсчет количества работ со стоимостью более 2000 руб.:
вывод в виде таблицы информации о работах, выполненных Петровым.
Структура содержит следующие поля: 1) название работы: 2) время выполнения: 3) ответственный: 4) отметка о выполнении: 5) стоимость работы.
Вариант № 3.
Создать СТРУКТУРУ, содержащую сведения по учету автотранспорта. Программа должна производить:
подсчет количества автомобилей марки Audi;
вывод в виде таблицы информации об автомобилях 2003 года выпуска.
Структура содержит следующие поля: 1) марка автомобиля: 2) год выпуска; 3) номерной знак : 4) пробег: 5) расход топлива на 100 км: 6) масса автомобиля.
Вариант № 4.
Создать СТРУКТУРУ, содержащую сведения об абитуриентах. Программа должна производить:
1) подсчет количества абитуриентов, которым уже исполнилось 18 лет:
2) вывод в виде таблицы информации об абитуриентах, средний балл которых более 4.
Структура содержит следующие поля: 1) фамилия: 2) имя; 3) отчество; 4) год рождения: 5) оценка по русскому; 6)оценка по математике; 7)средний балл
Вариант № 5.
Создать СТРУКТУРУ, содержащую сведения об угнанных автомобилях. Программа должна производить:
1) подсчет количества автомобилей марки BMW
2) вывод в виде таблицы информации об автомобилях, угнанных после 1998 года.
Структура содержит следующие поля: 1) марка автомобиля: 2)гос.номер; 3) цвет; 4) год угона: 5) номер двигателя: 6) фамилия владельца.
Вариант № 6.
Создать СТРУКТУРУ, содержащую сведения по микросхемам. Программа должна производить:
1) подсчет количества микросхем указанной серии
2) вывод в виде таблицы информации о микросхемах количеством выводов от 20 и больше.
Структура содержит следующие поля: 1) название: 2) серия; 3) напряжение питания: 4) количество выводов; 5)характеристика: 6) тип корпуса.
Вариант № 7.
Создать СТРУКТУРУ, содержащую сведения по учету магнитофонов. Программа должна производить:
1)подсчет количества магнитофонов марки Sony;
2) вывод в виде таблицы информации о магнитофонах указанной страны изготовителя
Структура содержит следующие поля: 1) год выпуска: 2) марка; 3) выходная мощность: 4) наличие микрофона: 5) масса; 6) страна-изготовитель.
Вариант № 8.
Создать СТРУКТУРУ, содержащую сведения по учету растений. Программа должна производить:
1) подсчет количества растений указанного семейства.
2) вывод в виде таблицы информации о растениях, цветущих осенью
Структура содержит следующие поля: 1) название растения: 2) климатический пояс: 3) семейство: 4) время цветения: 5) средняя масса соцветия: 6) необходимая температура почвы.
Вариант № 9.
Создать СТРУКТУРУ, содержащую сведения по учету музыкальных компакт-дисков. Программа должна производить:
1) подсчет количества компакт-дисков указанной фирмы:
2) вывод в виде таблицы информации о компакт-дисках, выпущенных 2 года назад.
Структура содержит следующие поля: 1) исполнитель; 2) год выпуска: 3) общее время: 4) фирма-производитель: 5) цена; 6) название альбома.
Вариант № 10.
Создать СТРУКТУРУ, содержащую сведения о Кадрах. Программа должна производить:
подсчет количества сотрудников с высшим образованием;
вывод в виде таблицы информации о сотрудниках, зачисленных в 2002 году.
Структура содержит следующие поля: 1) фамилия: 2) пол; 3) должность; 4) год зачисления: 5) оклад: 6) образование.
Вариант № 11.
Создать СТРУКТУРУ, содержащую сведения по учету печатающих устройств.
Программа должна производить:
1) подсчёт количества принтеров с форматом бумаги А4:
2) вывод в виде таблицы ннформации о принтерах указанной марки
Структура содержит следующие поля: 1) марка принтера: 2) год выпуска: 3) фирма-производитель; 4) количество цветов: 5) разрешение: 6) формат бумаги.
Вариант № 12.
Создать СТРУКТУРУ, содержащую сведения по учету программного обеспечения. Программа должна производить:
1) подсчет количества ПО, цена которого превышает 1000 руб.
2) вывод в виде таблицы информации о ПО указанного года выпуска.
Структура содержит следующие поля: 1) название; 2) год выпуска; 3) версия: 4) фирма-производитель; 5) цена.
Вариант № 13.
Создать СТРУКТУРУ, содержащую сведения об аптеке. Программа должна производить:
1) подсчёт количества лекарства, цена которого превышает 200 руб.;
2) вывод в виде таблицы информации о лекарствах указанного года выпуска.
Структура содержит следующие поля: 1) название лекарства: 2)год выпуска: 3) цена; 4) масса; 5) дозировка: 6) завод-изготовитель
Вариант № 14.
Создать СТРУКТУРУ, содержащую сведения об олимпиаде по легкой атлетике. Программа должна производить:
1) подсчет количества спортсменов, занявших первое место;
2) вывод в виде таблицы информации о спортсменах, занявших призовые места.
Структура содержит следующие поля: 1) фамилия спортсмена: 2) страна: 3) лучший предыдущий результат: 4) занятое место: 5) результат: 6) вес спортсмена.
Вариант № 15.
Создать СТРУКТУРУ, содержащую сведения по учету канцелярских товаров.
Программа должна производить:
подсчёт количества товаров с количеством более 10 штук в упаковке:
вывод в виде таблицы информации о товарах указанной страны производителя.
Структура записи: 1) название товара; 2) количество штук в упаковке: 3) страна-изготовитель: 4) артикул: 5) цена за упаковку: 6) масса упаковки.
Вариант № 16.
Создать СТРУКТУРУ, содержащую телефонный справочник. Программа должна производить:
1) подсчёт количества абонентов, подключившихся в 2004 году;
2) вывод в виде таблицы информации об абонентах указанной подстанции.
Структура содержит следующие поля: 1) фамилия владельца: 2) номер телефона: 3) адрес владельца: 4) номер телефонной подстанции: 5) год подключения абонента: 6) наличие параллельного телефона
Вариант № 17.
Создать СТРУКТУРУ, содержащую сведения по учету телевизионной техники. Программа должна производить:
1) подсчет количества телевизоров марки LG:
2)вывод в виде таблицы информации о телевизорах размером диагонали более 54.
Структура содержит следующие поля: 1) марка телевизора; 2) страна- изготовитель; 3) наличие телетекста; 4) размер диагонали; 5) количество принимаемых каналов; 6) масса.
Вариант № 18.
Создать СТРУКТУРУ, содержащую сведения о библиотеке. Программа должна производить:
1) подсчёт количества книг, указанного автора:
2) вывод в виде таблицы информации о книгах, цена которых более 300 руб.
Структура содержит следующие поля: 1) название книги; 2) учетный номер: 3) автор; 4) издательство; 5) количество страниц; 6) цена.
Вариант № 19.
Создать СТРУКТУРУ, содержащую сведения по учету банковских операций. Программа должна производить:
1) подсчёт количества вкладчиков, сумма вклада которых превышает 50000 руб.;
2) вывод в виде таблицы информации о вкладчиках указанного срока вклада.
Структура содержит следующие поля: 1) вид вклада; 2) фамилия вкладчика; 3) общая сумма вклада; 4) начисляемые проценты: 5) срок вклада: б) адрес вкладчика.
Вариант № 20.
Создать СТРУКТУРУ, содержащую сведения о расписании поездов. Программа должна производить:
1) подсчёт количества поездов указанного маршрута;
2) вывод в виде таблицы информации о поездах, цена билета которых превышает 1000 руб.
Структура содержит следующие поля: 1) маршрут; 2) номер поезда: 3) время отправления: 4) время прибытия: 5) цена билета: 6) тип вагона ( купе, мягкий и т.д.).
Вариант № 21.
Создать СТРУКТУРУ, содержащую сведения по учету дисковых накопителей для персональных компьютеров. Программа должна производить:
1) подсчет количества ПК с объемом накопителя более 60 Гб;
2) вывод в виде таблицы информации о ПК фирмы «ВЛАДОС»
Структура содержит следующие поля: 1) марка: 2) количество поверхностей: 3) фирма-изготовитель: 4) время доступа: 5) интерфейс: 6) объем накопителя.
Вариант № 22.
Создать СТРУКТУРУ, содержащую сведения об учете выполнения работ. Программа должна производить:
1) подсчет количества работ со стоимостью более 2000 руб.;
2) вывод в виде таблицы информации о работах, выполненных Поляковым
Структура содержит следующие поля: 1) название работы: 2) срок выполнения: 3) ответственный: 4) отметка о выполнении; 5) стоимость работы; 6) примечание.
Вариант № 23.
Создать СТРУКТУРУ, содержащую сведения по учету автотранспорта. Программа должна производить:
1) подсчет количества автомобилей Аudi:
2) вывод в виде таблицы информации об автомобилях 2000 года выпуска.
Структура содержит следующие поля: 1) марка автомобиля; 2) год выпуска: 3) номерной знак : 4) пробег: 5) расход топлива на 100 км: 6) масса автомобиля.
Вариант № 24.
Создать СТРУКТУРУ, содержащую сведения об абитуриентах. Программа должна производить:
1) подсчет количества абитуриентов, которым уже исполнилось 18 лет:
2) вывод в виде таблицы информации об абитуриентах, средний балл которых более 3.
Структура содержит следующие поля: 1) фамилия: 2) имя: 3) отчество: 4) год рождения: 5) оценка по русскому; 6) оценка по математике: 7) средний балл.
Вариант № 25.
Создать СТРУКТУРУ, содержащую сведения об угнанных автомобилях. Программа должна производить:
1) подсчет количества автомобилей марки KIA
2) вывод в виде таблицы информации об автомобилях, угнанных в 2000 и 2001 годах.
Структура содержит следующие поля: 1) марка автомобиля: 2) гос.номер; 3) цвет; 4) дата угона; 5) номер двигателя; 6) фамилия владельца.
Вариант № 26.
Создать СТРУКТУРУ, содержащую сведения по учету магнитофонов. Программа должна производить
1) подсчет количества магнитофонов указанной марки;
2) вывод в виде таблицы информации о магнитофонах указанной страны изготовителя.
Структура содержит следующие поля: 1) год выпуска: 2) марка; 3) выходная мощность: 4) наличие микрофона: 5) масса: 6) страна-изготовитель
Вариант № 27.
Создать СТРУКТУРУ, содержащую сведения по учету растений. Программа должна производить:
1) подсчет количества растений указанного семейства.
2) вывод в виде таблицы информации о растениях, цветущих осенью
Структура содержит следующие поля: 1) название растения: 2) климатический пояс: 3) семейство: 4) время цветения: 5) средняя масса соцветия: 6) необходимая температура почвы.
Вариант № 28.
Создать СТРУКТУРУ, содержащую сведения по учету музыкальных компакт-дисков. Программа должна производить:
1) подсчет количества компакт-дисков указанной фирмы:
2) вывод в виде таблицы информации о компакт-дисках, выпущенных 2 года назад.
Структура содержит следующие поля: 1) исполнитель: 2) год выпуска: 3) общее время: 4)фирма-производитель: 5) цена: 6) название альбома
Вариант № 29.
Создать СТРУКТУРУ, содержащую сведения о Кадрах. Программа должна производить:
подсчет количества сотрудников с высшим образованием;
вывод в виде таблицы информации о сотрудниках, зачисленных в 1998 году.
Структура содержит следующие поля: 1) фамилия: 2) пол; 3) должность; 4) год зачисления: 5) оклад: 6) образование.
Вариант № 30.
Создать СТРУКТУРУ, содержащую сведения по учету печатающих устройств.
Программа должна производить:
1) подсчёт количества принтеров с форматом бумаги А4:
2) вывод в виде таблицы информации о принтерах указанной марки
Структура содержит следующие поля: 1) марка принтера: 2) год выпуска: 3) фирма-производитель; 4) количество цветов: 5) разрешение: 6) формат бумаги.
Вариант № 31.
Создать СТРУКТУРУ, содержащую сведения по учету банковских операций. Программа должна производить:
1) подсчёт количества вкладчиков, сумма вклада которых превышает 100000 руб.;
2) вывод в виде таблицы информации о вкладчиках с указанной суммой вклада.
Структура содержит следующие поля: 1) вид вклада; 2) фамилия вкладчика; 3) общая сумма вклада; 4) начисляемые проценты: 5) срок вклада: б) адрес вкладчика.
К СОДЕРЖАНИЮ
Лабораторная работа № 11
Тема: «ЗАЧЕТНАЯ РАБОТА»
Цель работы: формирование знаний и умений по работе с блок-схемами алгоритмов. Реализация алгоритмов на языке программирования.
Порядок выполнения работы при формировании отчета:
Указать номер и название лабораторной работы, её цель.
Ознакомиться с индивидуальным заданием и описать его в пункте «Постановка задачи».
Создать математическую модель решения задачи, содержащую описание переменных и связывающие их формулы, описать её в пункте «Математическая модель».
Создать графическую модель решения задачи – блок-схему в пункте «Графическая модель»
Разработать программу в среде программирования и описать её в пункте «Программная модель решения задачи».
Результаты работы программы описать в пункте «Тестовая модель».
Сделать вывод исходя из цели лабораторной работы.

Краткие теоретические сведения
Обработка массива (написать программу из 10-15 строк на языке программирования или алгоритм на естественном языке).
Что нужно знать:
массив – это набор однотипных элементов, имеющих общее имя и расположенных в памяти рядом
для обращения к элементу массива используют квадратные скобки, запись A[i] обозначает элемент массива A с номером (индексом) i
для обработки всех элементов массива используется цикл вида
for i:=1 to N do begin
{ что-то делаем с элементом A[i] }
end;
переменная i обозначает номер текущего элемента массива, она меняется от 1 до N с шагом 1, то есть мы «проходим» последовательно все элементы
матрица (двухмерный массив) – это прямоугольная таблица однотипных элементов
если матрица имеет имя A, то обращение A[i,k] обозначает элемент, расположенный на пересечении строки i и столбца k
k i A[i,k] каждая строка матрицы – это обычный (одномерный, линейный) массив; для того, чтобы обработать строку i в матрице из M столбцов, нужно использовать цикл, в котором меняется номер столбца k:
for k:=1 to M do begin
{ что-то делаем с элементом A[i,k] }
end;
каждый столбец матрицы – это обычный (одномерный, линейный) массив; для того, чтобы обработать столбец k в матрице из N строк, нужно использовать цикл, в котором изменяется номер строки i:
for i:=1 to N do begin
{ что-то делаем с элементом A[i,k] }
end;
Пример задания:
Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от 0 до 1000. Опишите на русском языке или на одном из языков программирования алгоритм, позволяющий найти и вывести минимальное значение среди элементов массива, которые имеют чётное значение и не делятся на три. Гарантируется, что в исходном массиве есть хотя бы один элемент, значение которого чётно и не кратно трем.
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но использовать все описанные переменные не обязательно.
Естественный язык:
Объявляем массив A из 20 элементов.
Объявляем целочисленные переменные I, J, MIN.
В цикле от 1 до 20 вводим элементы массива A с 1-го по 20-й.
Паскаль:
const N=20;
var a: array [1..N] of integer;
i, j, min: integer;
begin for i:=1 to N do
readln(a[i]);

end.
Решение:
даже если вы хорошо владеете программированием, сначала лучше (прежде всего, для себя) написать алгоритм на русском языке
здесь требуется найти минимальный элемент из всех, которые имеют чётное значение и не делятся на 3
делимость одного целого числа на другое проверяется с помощью операции взятия остатка (в Паскале – операция mod): первое число делится на второе, если остаток от деления равен 0
тогда условие, определяющее отбор нужных элементов, запишется в виде
(a[i] mod 2 = 0) and (a[i] mod 3 <> 0)
стандартный цикл поиска минимального элемента, удовлетворяющего условию, выглядит так:
for i:=1 to N do
if <условие верно> and (a[i] < min) then
min := a[i];
остается один вопрос: каким должно быть начальное значение переменной min? его нужно выбрать таким, чтобы для первого же «подходящего» элемента выполнилось условие a[i] < min, и это «временное» начальное значение было бы заменено на реальное
к счастью, диапазон входных чисел ограничен (от 0 до 1000), поэтому можно выбрать любое значение, больше 1000, например, 1001 или 9999
таким образом, решение задачи на естественном языке выглядит так:
Записываем в переменную min значение 1001.Затем в цикле просматриваем все элементы массива, с первого до последнего. Если остаток от деления очередного элемента на 2 равен 0 и остаток от его деления на 3 не равен нулю и значение элемента меньше, чем значение переменной min, записать в переменную min значение рассматриваемого элемента массива. Затем переходим к следующему элементу.После окончания работы цикла выводим значение переменной min.
аналогичное решение на Паскале:
min:=1001;
for i:=1 to N do
if (a[i] mod 2=0) and (a[i] mod 3<>0) and (a[i]<min) then
min:=a[i];
writeln(min);
Возможные проблемы:
не забудьте сказать, что нужно вывести после окончания работы программы
если вы достаточно хорошо владеете русским языком для того, чтобы понятно излагать свои мысли, с точки зрения тактики рекомендуется писать алгоритм на русском языке – по крайней мере, тут не снизят за пропущенную точку с запятой
просмотрите внимательно диапазон, в котором находятся исходные числа; дело в том, что во многих языках, например, в Паскале и в Си, остаток от деления отрицательного числа на положительное – число отрицательное, например (-7) mod 3 = -1, поэтому определять, например, нечётность элемента массива с помощью условия a[i] mod 3 = 1 нельзя (не будет работать для отрицательных чисел), нужно использовать условие a[i] mod 3 <> 0Ещё пример задания:
Опишите на русском языке или одном из языков программирования алгоритм получения из заданного целочисленного массива размером 30 элементов другого массива, который будет содержать модули значений элементов первого массива (не используя специальной функции, вычисляющей модуль числа).
Решение:
даже если вы хорошо владеете программированием, сначала лучше (прежде всего, для себя) написать алгоритм на русском языке (или на псевдокоде – это нечто среднее между словесным алгоритмом и готовой программой)
по условию нужно выделить в памяти два массива одинакового размера, назовем их A и B; обозначим размер массивов через N, индексы элементов изменяются от 1 до N;
в цикле в каждый элемент B[i] массива B нужно записать модуль соответствующего элемента A[i] массива A, это нужно сделать для всех i от 1 до N
есть небольшая сложность: запрещено использовать стандартную функцию вычисления модуля; согласно определению модуля решение может быть такое: если элемент A[i] больше или равен нулю, записываем в B[i] его значение без изменений, а если меньше нуля – меняем знак, то есть, в B[i] записываем (-A[i])
решение в виде алгоритма на русском языке может выглядеть так:«Выделяем в памяти второй массив того же размера. В цикле рассматриваем все элементы первого массива с первого до последнего. Если текущий элемент больше нуля или равен нулю, в соответствующий элемент второго массива записываем его значение без изменений; если текущий элемент меньше нуля, во второй массив записываем значение элемента с обратным знаком. Выводим второй массив на экран».
осталось написать программу, практически дословно реализующую это решение:
const N = 30;
var a, b:array[1..N] of integer;
i: integer;
begin
for i:=1 to N do { ввод всех элементов массива с клавиатуры }
read(a[i]);
for i:=1 to N do { формирование массива B }
if a[i] < 0 then
b[i]:= -a[i]
else b[i]:= a[i];
writeln('Результат:');
for i:=1 to N do { вывод всех элементов массива B }
write(b[i], ' ');
end.
размер массива грамотно задавать через константу (const N = 30;), а не вписывать число в каждый цикл; тогда, если нужно будет переделать программу для массива другого размера, достаточно будет изменить всего одно число в начале программы
Возможные проблемы:
проверяйте правильность минимального и максимального значения переменной цикла в заголовке цикла for
не забывайте вывести результат в конце работы программы
Еще пример задания:
Опишите на русском языке или одном из языков программирования алгоритм подсчета максимального количества подряд идущих совпадающих элементов в целочисленном массиве длины 30.

Решение:
сначала нужно понять задачу; предположим, что в массиве есть одинаковые элементы, стоящие рядом:
1 1 2 2 1 1 1 1 3 3 2 2
самая длинная цепочка стоящих рядом элементов в данном случае состоит из 4-х единиц (она выделена желтым фоном)
нам нужно по крайней мере две переменных: для хранения номера текущего элемента (при обработке массива в цикле) и для хранения максимального количества идущих подряд элементов (обозначим ее kMax)
в целом (пока неточный) алгоритм может выглядеть так: «пройти весь массив, подсчитывая для каждого элемента длину цепочки подряд идущих одинаковых чисел, если эта длина больше kMax, то записать ее в kMax»
отсюда сразу следует, что необходима еще одна переменная (обозначим ее через k), показывающая для каждого элемента массива длину цепочки одинаковых чисел, которая заканчивается на этом элементе:
1 1 2 2 1 1 1 1 3 3 2 2
k 1 2 1 2 1 2 3 4 1 2 1 2
kMax 1 2 2 2 2 2 3 4 4 4 4 4
следующий шаг к решению: нужно понять, как изменять переменную k при проходе по массиву; можно сделать так: если очередной элемент равен предыдущему, счетчик k увеличиваем на единицу, а если не равен – записываем в него 1 (цепочка одинаковых чисел кончилась, началась новая, в ней пока один элемент)
при таком подходе проблема может возникнуть при просмотре первого элемента, потому что для него нет предыдущего; поэтому описанную выше процедуру будем в цикле применять ко всем элементам массива, начиная со второго (а не с первого); в самом начале программы запишем в k и kMax по единице – таким образом, мы «вручную» (без цикла) рассмотрели первый элемент массиватеперь можно написать алгоритм на русском языке:«Выделим две вспомогательные переменные, k и kMax, и запишем в каждую из них по единице. В цикле рассматриваем все элементы массива со второго до последнего, если очередной элемент равен предыдущему, увеличиваем k; если k > kMax, записываем в kMax значение k. В конце цикла в kMax окажется требуемое значение».
этот алгоритм реализуется в такой программе:
const N =30;
var a: array[1..N] of integer;
i, k, kMax: integer;
beginfor i:=1 to N do readln(A[i]); { ввод массива }
k := 1; { обрабатываем A[1] }
kMax := 1;
for i:=2 to N do begin { а теперь в цикле A[2]...A[N} }
if A[i] = A[i-1] then { цепочка продолжается }
k := k + 1
else k := 1; { цепочка закончилась }
if k > kMax then kMax := k;
end;
writeln(kMax);
end.
Возможные проблемы:
как видим, основная сложность в этой задаче – не написать программу, а придумать хороший (часто еще нужно – быстрый) алгоритм
проверьте, что будет записано в переменные до начала цикла (определены ли их начальные значения)
проверяйте, не выйдет ли индекс за границу массива в начале или в конце цикла
будьте внимательны с «крайними» случаями, например, нужно обязательно убедиться, что программа работает, когда интересующая нас цепочка стоит в самом начале или в самом конце массива
Еще пример задания:
Дан целочисленный квадратный массив 10 х 10. Опишите на русском языке или на одном из языков программирования алгоритм вычисления суммы максимальных элементов из каждой строки. Напечатать значение этой суммы. Предполагается, что в каждой строке такой элемент единственный.
Решение:
суть задачи: среди элементов каждой строки нужно выбрать максимальный, и все эти выбранные значения сложить
несложно сразу написать алгоритм на русском языке: «Чтобы накапливать сумму, нужно ввести целую переменную Sum, в которую в самом начале записываем 0 ; далее в цикле просматриваем все строки, для каждой строки находим максимальный элемент и прибавляем его значение к Sum. Для определения максимального элемента в строке вводим переменную max и сначала записываем в нее значение первого элемента этой строки. Затем в цикле просматриваем все остальные элементы, начиная со второго до конца массива. Если очередной элемент больше значения max, записываем в max значение этого элемента».
сначала напишем программу на псевдокоде:
const N=10;
{ ввод матрицы N на N }Sum := 0;
for i:=1 to N do begin
{ max := максимальный элемент в i-ой строке }
Sum := Sum + max;
end;
остается записать на Паскале те части, которые взяты в фигурные скобки, и до конца оформить программу; по правилам ЕГЭ можно не писать в программе команды для ввода массива, поэтому мы оставим на этом месте комментарий:
const N=10;
var A: array[1..N,1..N] of integer;
i, k, max, Sum: integer;
begin{ ввод матрицы N на N }
Sum := 0;
for i:=1 to N do begin
max := A[i,1];
for k:=2 to N do
if A[i,k] > max then max := A[i,k];
Sum := Sum + max;
end;
writeln(Sum);
end.
Возможные проблемы:
проверьте, правильно ли заданы (и заданы ли вообще) начальные значения для всех переменных
проверьте, правильно ли расставлены операторные скобки begin-end, ограничивающие тело цикла; их обязательно нужно ставить, если в теле цикла несколько операторов
проверяйте, не выйдет ли индекс за границу массива в начале или в конце цикла
не перепутайте номер строки (это первый индекс) и номер столбца (второй индекс)
для надежности не рекомендуется использовать в одной программе переменные i и j, потому что они слишком похоже выглядят, вот пример ошибочного решения в этой задаче:
for i:=1 to N do begin
max := A[i,1];
for i:=2 to N do
if A[j,i] > max then max := A[i,j];
Sum := Sum + max;
end;
если вы все же используете переменные i и j, нужно писать их очень четко, чтобы они отличались друг от друга
Немного тактики:
в этом задании можно написать алгоритм на русском языке, а можно (вместо этого) написать компьютерную программу на одном из языков программирования
если вы хорошо умеете выражать свои мысли по-русски, собаководы эксперты рекомендуют писать только алгоритм на русском языке; дело в том, что если вы сделаете много ошибок в программе, оценка будет снижена даже при абсолютно правильном алгоритме
если вам сложно изъясняться на родном языке, а легче записать свои мысли на Паскале или Си – пишите программу, но тщательно проверяйте ее на предмет возможных случайных ошибок-опечаток, которые можно сделать просто по невнимательности:
задавайте все начальные значения для переменных
проверяйте правильность написания ключевых слов
если в теле цикла несколько операторов, заключайте их в блок begin-end (операторные скобки)
проверяйте начальное и конечное значение переменной цикла
если вы используете циклы while или repeat, проверьте, что переменная цикла изменяется в теле цикла (иначе в программе будет зацикливание, а на ЕГЭ – потерянные баллы)
выводите на экран именно то, что требуется по условию
ставьте точку с запятой в конце операторов
НЕ ставьте точку с запятой перед else (Паскаль)
ставьте точку в конце последнего оператора end (Паскаль)
К СОДЕРЖАНИЮ
Индивидуальные задания (номер задания соответствует порядковому номеру учащегося в журнале)
Дан целочисленный массив из 30 элементов. Элементы могут принимать значения от 0 до 100 – баллы, полученные на ЕГЭ. Опишите алгоритм, который подсчитывает и выводит средний балл учащихся, сдавших экзамен (получивших оценку более 20 баллов). Гарантируется, что хотя бы один ученик в классе успешно сдал экзамен. Исходные данные объявлены так, как показано ниже. Использовать другие переменные запрещается.
Паскаль Естественный язык
const N = 30;
var A: array[1..N] of integer;
i, x, y: integer;
s: real;
begin
for i:=1 to N do readln(A[i]);
...
end. Объявляется массив A из 30 элементов.
Объявляются целочисленные переменные i, x и y, а также вещественная переменная s.
В цикле от 1 до 30 заполняются все элементы массива A с 1-ого по 30-ый.
...
Дан целочисленный массив из 30 элементов. Элементы могут принимать значения от 160 до 200 – рост учащихся выпускного класса. В баскетбольную команду берут тех, чей рост не менее 180 см. Опишите алгоритм, который подсчитывает и выводит минимальный рост игрока баскетбольной команды. Гарантируется, что хотя бы один ученик играет в баскетбольной команде. Исходные данные объявлены так, как показано ниже. Использовать другие переменные запрещается.
Паскаль Естественный язык
const N = 30;
var A: array[1..N] of integer;
i, x, y: integer;
s: real;
begin
for i:=1 to N do readln(A[i]);
...
end. Объявляется массив A из 30 элементов.
Объявляются целочисленные переменные i, x и y, а также вещественная переменная s.
В цикле от 1 до 30 заполняются все элементы массива A с 1-ого по 30-ый.
...
Дан целочисленный массив из 31 элемента, в котором записаны значения температуры воздуха в марте. Элементы массива могут принимать значения от (–20) до 20. Опишите алгоритм, который подсчитывает и выводит среднюю температуру по всем дням, когда была оттепель (температура поднималась выше нуля). Гарантируется, что хотя бы один день в марте была оттепель. Исходные данные объявлены так, как показано ниже. Использовать другие переменные запрещается.
Паскаль Естественный язык
const N = 31;
var A: array[1..N] of integer;
i, x, y: integer;
s: real;
begin
for i:=1 to N do readln(A[i]);
...
end. Объявляется массив A из 31 элемента.
Объявляются целочисленные переменные i, x и y, а также вещественная переменная s.
В цикле от 1 до 31 заполняются все элементы массива A с 1-ого по 31-ый.
...
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 100 – баллы учащихся выпускного класса за итоговый тест по информатике. Для получения положительной оценки за тест требовалось набрать не менее 20 баллов. Опишите алгоритм, который находит и выводит минимальный балл среди учащихся, получивших за тест положительную оценку. Известно, что в классе хотя бы один учащийся получил за тест положительную оценку. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
Паскаль Естественный язык
const N=30;
var a: array [1..N] of integer;
i, j, min: integer;
begin
for i:=1 to N do readln(a[i]);
...
end. Объявляется массив A из 30 элементов.
Объявляются целочисленные переменные i, j и min.
В цикле от 1 до 30 заполняются все элементы массива A с 1-ого по 30-ый.
...
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 100 – баллы учащихся выпускного класса за итоговый тест по информатике. Опишите алгоритм, который позволяет найти и вывести количество учащихся, чья оценка за тест выше средней оценки в классе. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
Паскаль Естественный язык
const N=30;
var a: array [1..N] of integer;
i, j: integer;
s: real;
begin
for i:=1 to N do readln(a[i]);
...
end. Объявляем массив A из 30 элементов. Объявляем целочисленные переменные i, j.
Объявляем действительную переменную s.
В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й.
...
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать произвольные целые значения. С клавиатуры вводится целое число X. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит наименьший номер элемента, равного X, или сообщение, что такого элемента нет. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
Паскаль Естественный язык
const N=30;
var a: array [1..N] of integer;
i, j, x: integer;
begin
for i:=1 to N do readln(a[i]);
readln(x);
...
end. Объявляем массив A из 30 элементов. Объявляем целочисленные переменные i, j, x. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й. Вводим переменную X.
...
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать произвольные целые значения. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит второй максимум массива (элемент, который в отсортированном по невозрастанию массиве стоял бы вторым). Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
Паскаль Естественный язык
const N=30;
var a: array [1..N] of integer;
i, k, max, max2: integer;
begin
for i:=1 to N do readln(a[i]);
...
end. Объявляем массив A из 30 элементов. Объявляем целочисленные переменные i, k, max, max2. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й.
...
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать произвольные целые значения. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит номер третьего положительного элемента массива (если из массива вычеркнуть все неположительные элементы, этот элемент стоял бы в получившемся массиве на третьем месте). Если в массиве меньше, чем три положительных элемента, вывести сообщение об этом. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
Паскаль Естественный язык
const N=30;
var a: array [1..N] of integer;
i, j, k: integer;
begin
for i:=1 to N do readln(a[i]);
...
end. Объявляем массив A из 30 элементов. Объявляем целочисленные переменные i, j, k. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й.
...
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать произвольные целые значения. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит сумму наибольшей возрастающей последовательности подряд идущих элементов. Если таких последовательностей несколько, можно вывести любую из них. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
Паскаль Естественный язык
const N=30;
var a: array [1..N] of integer;
i, l, lmax, s, smax: integer;
begin
for i:=1 to N do readln(a[i]);
...
end. Объявляем массив A из 30 элементов. Объявляем целочисленные переменные i, l, lmax, s, smax.
В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й.
...
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать любые целые значения. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит номер элемента массива, наименее отличающегося от среднего арифметического всех его элементов. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
Паскаль Естественный язык
const N=30;
var a: array [1..N] of integer;
i, k: integer;
s, min: real;
begin
for i:=1 to N do readln(a[i]);
...
end. Объявляем массив A из 30 элементов. Объявляем целочисленные переменные i, k.
Объявляем действительные переменные s, min.
В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й.
...
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать произвольные целые значения. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит номера двух элементов массива, сумма которых минимальна. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
Паскаль Естественный язык
const N=30;
var a: array [1..N] of integer;
i, j, min, min2, s: integer;
begin
for i:=1 to N do readln(a[i]);
...
end. Объявляем массив A из 30 элементов. Объявляем целочисленные переменные i, j, min, min2, s. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й.
...
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать произвольные целые значения. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит номера двух элементов массива, наименее отличающихся друг от друга. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
Паскаль Естественный язык
const N=30;
var a: array [1..N] of integer;
i, j, min, min2, s: integer;
begin
for i:=1 to N do readln(a[i]);
...
end. Объявляем массив A из 30 элементов. Объявляем целочисленные переменные i, j, min, min2, s. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й.
...
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать значения от–1000 до 1000. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит среднее арифметическое всех элементов массива, оканчивающихся цифрой 5. Гарантируется, что хотя бы один такое элемент в массиве есть.
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
Паскаль Естественный язык
const N=30;
var a: array [1..N] of integer;
i, x, y: integer;
s: real;
begin
for i:=1 to N do readln(a[i]);
...
end. Объявляем массив A из 30 элементов. Объявляем целочисленные переменные i, x, y и вещественную переменную s. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й.
...
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать значения от0 до 1000. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит среднее арифметическое всех элементов массива, имеющих нечётное значение. Гарантируется, что хотя бы один такое элемент в массиве есть.
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
Паскаль Естественный язык
const N=30;
var a: array [1..N] of integer;
i, x, y: integer;
s: real;
begin
for i:=1 to N do readln(a[i]);
...
end. Объявляем массив A из 30 элементов. Объявляем целочисленные переменные i, x, y и вещественную переменную s. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й.
...
Опишите на русском языке или одном из языков программирования алгоритм подсчета максимального количества подряд идущих отрицательных элементов в целочисленном массиве длины 30.
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целочисленные значение значения от -20 до 20 – сведения о температуре за каждый день ноября. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит максимальную температуру среди дней, когда были заморозки (температура опускалась ниже нуля). Гарантируется, что хотя бы один день в ноябре была отрицательная температура.
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
Паскаль Естественный язык
const N=30;
var a: array [1..N] of integer;
i, j, max: integer;
begin
for i:=1 to N do readln(a[i]);
...
end. Объявляем массив A из 30 элементов. Объявляем целочисленные переменные i, j, max. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й.
...
Опишите алгоритм поиска номера первого из двух последовательных элементов в целочисленном массиве из 30 элементов, сумма которых максимальна (если таких пар несколько, то можно выбрать любую из них).

Опишите алгоритм поиска максимального произведения трех последовательных элементов в целочисленном массиве из 50 элементов. Перепишите этот фрагмент в новый массив (если таких триад несколько, то можно выбрать любую из них).
Опишите алгоритм поиска трех последовательных элементов, сумма которых максимальна, в числовом массиве из 30 элементов.
Дан прямоугольный массив целых положительных чисел 10 х 20. Опишите алгоритм поиска строки с наименьшей суммой элементов. Вывести на печать номер строки и сумму ее элементов. Предполагается, что такая строка единственна.
Дан квадратный массив целых положительных чисел 10 х 10. Опишите алгоритм вычисления суммы элементов строки, в которой расположен элемент с максимальным значением. Вывести значение суммы на печать. Предполагается, что такой элемент единственный.
Дан целочисленный прямоугольный массив 6x10. Опишите алгоритм вычисления суммы минимальных элементов из каждой строки. Напечатать значение этой суммы. Предполагается, что в каждой строке минимальный элемент единственный.
Опишите на русском языке или одном из языков программирования алгоритм вычисления среднего арифметического элементов квадратной матрицы размером 5 на 5, стоящих на главной диагонали.
Дан целочисленный массив из 30 элементов, все элементы которого – неотрицательные числа, не превосходящие 10000. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит минимальное трехзначное число, записанное в этом массиве. если таких чисел нет, нужно вывести сообщение «Таких чисел нет».
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
Паскаль Естественный язык
const N=30;
var a: array [1..N] of integer;
i, j, min: integer;
begin
for i:=1 to N do readln(a[i]);
...
end. Объявляем массив A из 30 элементов. Объявляем целочисленные переменные i, j, min. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й.
...
Дан целочисленный массив из 30 элементов, все элементы которого – положительные числа, не превосходящие 100. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит номер элемента, имеющего максимальное количество целочисленных делителей (если таких элементов несколько, то номер любого из них). Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них
Паскаль Естественный язык
const N=30;
var a: array [l..N] of integer;
i,j,k,imax,kmax: integer;
begin
for i:=l to N do readln(a[i]);
...
end. Объявляем массив A из 30 элементов. Объявляем целочисленные переменные i, j, k, imax, kmax. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й.
...
Дан целочисленный массив из 40 элементов, все элементы которого – целые числа в интервале от -500 до 500. Опишите на русском языке или на одном из языков программирования алгоритм, который находит среднее арифметическое всех положительных элементов массива, которые кратны первому элементу (делятся нацело на первый элемент). Гарантируется, что первый элемент массива отличен от нуля. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них
Паскаль Естественный язык
const N=40;
var a: array [l..N] of integer;
i,x,y: integer;
s: real;
begin
for i:=l to N do readln(a[i]);
...
end. Объявляем массив A из 40 элементов. Объявляем целочисленные переменные i, x, y и вещественная переменная s. В цикле от 1 до 40 вводим элементы массива A с 1-го по 40-й.
...
Дан целочисленный массив из 20 элементов, все элементы которого – целые числа в интервале от -1000 до 1000. Опишите на русском языке или на одном из языков программирования алгоритм, который находит минимальное значение из всех нечетных элементов массива, которые делятся на 5. Гарантируется, что хотя бы один такой элемент существует. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них
Паскаль Естественный язык
const N=20;
var a: array [l..N] of integer;
i,j,min: integer;
begin
for i:=l to N do readln(a[i]);
...
end. Объявляем массив A из 20 элементов. Объявляем целочисленные переменные i, j, min. В цикле от 1 до 20 вводим элементы массива A с 1-го по 20-й.
...
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 1000. Опишите на русском языке или на одном из языков программирования алгоритм, позволяющий найти и вывести сумму элементов массива, кратных тринадцати. Гарантируется, что в исходном массиве есть хотя бы один элемент, значение которого делится на тринадцать. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
Паскаль Естественный язык
const N=30;
var a: array [l..N] of integer;
i,j,s: integer;
begin
for i:=l to N do readln(a[i]);
...
end. Объявляем массив A из 30 элементов.
Объявляем целочисленные переменные I, J, S. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й.
...