- •Этапы разработки программы Программирование — это процесс создания (разработки) программы, который может быть представлен как последовательность нескольких этапов.
- •II. Языки программирования
- •Трансляторы
- •IV. Линейные алгоритмы
- •VI. Циклические алгоритмы
- •VII. Массивы данных
- •16. Ввести с помощью датчика случайных чисел и вывести на печать элементы массива.
- •20. Задан массив целых чисел a[n]. Определить количество положительных элементов в нем и вычислить их сумму.
- •22. Определить количество положительных, отpицательных и pавных нулю чисел в заданном массиве a[I].
- •23. Задан массив целых чисел a[I]. Определить количество положительных и отpицательных элементов в нем и вычислить их суммы.
- •24. Задан массив целых чисел a[n]. Опpеделить количество элементов, pасполо женных до пеpвого отpицательного.
- •25. Опpеделить является ли сумма элементов заданного массива X[I] четным числом.
- •26. Задан массив целых чисел a[n]. Cфоpмиpовать массив b[n], записав в него сначала все отpицательные элементы массива a[n], а эатем все остальные.
- •27. Задан массив целых чисел X[I]. Опpеделить max элемент и его поpядковый номеp.
- •28. Задан массив целых чисел a[I]. Hайти минимальный элемент сpеди положительных.
- •31. Заданы два массива целых чисел a[I] и b[I] по n элементов в каждом. Вычислить попаpные пpоизведения элементов этих массивов и опpеделить минимальное пpоизведение.
- •32. Задан массив целых чисел a[n]. Опpеделить тpи наибольших элемента в нем.
- •35. Опpеделить количество положительных элементов в каждом столбце матpицы.
- •39. Опpедилить max элемент матpицы и записать нули в стpоку, в котоpой он находится.
- •40. Задана матpица целых чисел. Опpеделить max элемент главной диагонали матpицы и напечатать стpоку, в котоpой он находится.
- •41. Задана матpица целых чисел. Опpеделить min элемент матpицы и записать 0 в ту стpоку и столбец, на пеpесечении котоpых он находится.
- •42. Задано целое положительное число n. Cфоpмиpовать матpицу:
- •46. Дано n целых чисел. Напечатать k целых чисел в каждой строке.
- •VIII. Обработка символьной информации
- •IX. Сортировка данных
- •57. Задан массив слов. Выполнить соpтиpовку этих слов в алфавитном поpядке.
- •X. Функции
- •127994, Москва, ул. Образцова, 15.
II. Языки программирования
Для того чтобы ЭВМ могла решать задачи, составленные человеком, она должна последовательно выполнять инструкции некоторой программы-алгоритма. Совокупность таких инструкций, направленных на решение конкретной задачи, называется компьютерной программой.
Компьютер не понимает естественного языка человека, а понимает только свой язык — машинный код. Что касается языка программирования, то он с помощью фиксированных систем обозначений и правил позволяет описывать алгоритмы и структуры данных, которые впоследствии будут переведены транслятором в машинный код.
Все языки программирования можно разделить на языки низкого и высокого уровней.
Языки низкого уровня — это средство записи инструкций компьютеру простыми приказами-командами на аппаратном уровне. Такой язык зависит от структуры конкретной ЭВМ и иногда называется машинно-ориентированным языком. Этот язык плохо приспособлен для использования человеком, ведь запись программы на этом языке представляет собой последовательность нулей и единиц, и мало шансов, что сложная задача будет запрограммирована безошибочно. Для упрощения программирования был разработан язык символического кодирования (язык ассемблера). Программа, написанная на таком языке, ближе человеку, но все равно требует от программиста широких познаний в этой области.
Следующая группа — языки программирования высокого уровня. Это языки, которые допускают описание задачи в наглядном, легко воспринимаемом виде. Их отличительной особенностью является ориентация не на систему команд той или иной ЭВМ, а на систему инструкций, характерных для записи алгоритмов определенного класса. К языкам программирования высокого класса относятся Бейсик, Фортран, Алгол, Паскаль, Си и др.
Трансляторы
Программа, написанная на любом языке программирования, является исходной программой. Особенность таких программ, как Мы помним, заключается в том, что они состоят из инструкций, понятных человеку, но не понятных процессору компьютера. Чтобы процессор мог выполнить работу в соответствии с алгоритмом, записанным в исходной программе, эта программа должна быть переведена на машинный язык — язык команд процессора. Такой перевод программы называется трансляцией (translation — перевод), а выполняется он специальными программами — трансляторами.
Существует три вида трансляторов: интерпретаторы, компиляторы и ассемблеры.
Интерпретатор — транслятор, переводящий текст программы поэтапно (покомандно) и сразу же (то есть параллельно) выполняющий оттранслированную команду исходной программы.
Компилятор транслирует текст программы в модуль на машинном языке, затем программа переписывается в оперативную память и лишь после этого исполняется процессором компьютера. Именно с использованием трансляторов такого типа осуществляется перевод программы на многих языках программирования в машинный код. Поэтому рассмотрим его чуть подробнее.
Схематически работу компилятора иллюстрирует рис.2.
Цифрой 1 на схеме обозначен блок синтаксического контроля текста программы, цифрой 2 — генератор машинного кода.

Рис. 2. Схема работы компилятора
Если генератор машинного кода компилятора перевел исходный текст программы в необходимую форму, значит, в тексте программы нет синтаксических ошибок, но это не говорит об отсутствии ошибок в алгоритме. Убедиться в правильности работы программы можно только при ее тестировании, то есть при обработке результатов, получаемых в процессе работы программы.
Последний вид трансляторов — ассемблеры. Они предназначены для перевода программы, написанной на языке ассемблера (автокода), в программу на машинном языке.
Все трансляторы, независимо от их вида, решают следующие основные задачи:
выполняют анализ и проверяют синтаксис транслируемой программы;
генерируют машинный код программы;
распределяют память для выходной программы.
История алгоритмического языка С++
Разработчиком языка С++ является Бьерн Страуструп. В своей работе он опирался на опыт создателей языков Симула, Модула 2, абстрактных типов данных. Работы велись в исследовательском центре компании BellLabs.Непосредственный предшественник С++ - язык С с классами – появился в 1979 году, а в 1997 году был принят международный стандарт С++, который фактически подвел итоги его 20 -летнего развития. Принятие стандарта обеспечило единооьразие всех реализацийязыка С++.
Язык С++ является универсальным языком программирования, в дополнение к которому разработан набор разнообразных библиотек. С помощью С++ можно решить практически любую задачу программирования.
С++ широко используется в системном программировании. На нем можно писать высоклэффективные программы, в том числе операционные системы, драйверы и т.п. Язык С++ - один из основных языков разработки трансляторов.
В связи с тем, что системное программное обеспечение часто написано на С или С++, то и программные интерфейсы к подсистемам ОС тоже часто пишут на С++. Соответственно, программы взаимодействующие с операционными системами (в том числе и прикладные) написаны на языке С++.
Распределенные системы, функционирующие на разных компьютерах, также разрабатываются на языке С++.
Обработка сложных структур данных – текста, бизнес-информации, Internet-страниц и т.п. – одна из наиболее распространенных возможностей применения языка. Широко применяется язык С++ и в прикладном программировании.
Разработка графического пользовательского интерфейса на языке С++ выполняется для сложных, нестандартных интерфейсов.
В настоящее время язык С++ является одним из наиболее распространенных языков программирования в мире.
