|
||||||||||||
|
||||||||||||
|
|||||||||
МЕНЮ
|
БОЛЬШАЯ ЛЕНИНГРАДСКАЯ БИБЛИОТЕКА - РЕФЕРАТЫ - Этапы подготовки и решения задач на элекронных вичислительных системах. Стили программированияЭтапы подготовки и решения задач на элекронных вичислительных системах. Стили программированияРазмещено на http://www.allbest.ru/ Содержание Введение 1. Основные этапы решения задачи на эвм 2. Элементарные алгоритмические структуры 3. Основы программирования Литература Введение Тема контрольной работы «Этапы подготовки и решения задач на ЭВМ. Стили программирования» по дисциплине «Вычислительная техника и основы программирования». Цель работы - рассмотреть основные этапы решения задачи на эвм; элементарные алгоритмические структуры; основы визуального программирования. 1. Основные этапы решения задачи на эвм В настоящее время на ЭВМ решают самые разнообразные задачи, от расчета баллистических траекторий до завоевания инопланетных территорий (пока только в компьютерных играх). В каждом случае ЭВМ выполняет какую-то программу, обычно довольно сложную. Некоторые из программ требуют от пользователя специальных знаний и высокой квалификации, например, программы электронной верстки или автоматизированного проектирования, но здесь мы будем говорить не об использовании, а об изготовлении программ. Несмотря на бесконечное разнообразие программ, в самом процессе их изготовления можно усмотреть нечто общее и выделить несколько этапов решения задачи на ЭВМ. Постановка задачи Под постановкой задачи понимают математическую или иную строгую формулировку решаемой задачи. Этот этап включает определение целей создаваемой программы и определение ограничений, налагаемых на программу. При постановке задачи должны быть определены требования: - ко времени решения поставленной задачи; - объему необходимых ресурсов, например, оперативной памяти; - точности достигаемого результата. Проектирование программы Если задача вычислительная, то на этом этапе следует выбрать метод расчета, если разрабатывается компьютерная игра, должен быть определен ее сценарий. В любом случае следует выбрать или создать некую формальную модель, которая, в конечном счете, реализуется в будущей программе. На этапе проектирования определяют вид данных, с которыми будет работать программа, основные части, из которых программа будет состоять и характер связей между этими частями. Разработка алгоритма На этом этапе следует разработать детали проекта программы. Детализацию необходимо довести до той степени, когда кодирование деталей программы (перевод их на алгоритмический язык) станет тривиальным. Возможно, детализация потребует нескольких стадий, от крупных блоков к все более мелким, и в результате должно получиться то, что называется алгоритмом решения задачи. Алгоритм - центральное понятие программирования, поэтому познакомиться с ним следует как можно раньше. Само слово “алгоритм” происходит от имени персидского математика Аль Хорезми, который в IX веке разработал правила четырех арифметических действий (сегодня мы бы сказали алгоритмы арифметических действий). В начале ХХ века алгоритмы стали объектом изучения математиков, появились различные математические уточнения понятия “алгоритм” и возникла целая отрасль математики - теория алгоритмов. Результаты, полученные теорией алгоритмов, служат теоретическим фундаментом всей компьютерной технологии, но в повседневной программистской практике не используются, поэтому сейчас мы будем обсуждать алгоритмы в их интуитивном, “бытовом” понимании. Итак, алгоритм - это описание некоторой последовательности действий, но не всякое, а обладающее определенными свойствами. К этим свойствам относятся: 1) дискретность - расчлененность описания на отдельные элементарные действия -- операции, которые доступны исполнителю алгоритма (человеку, роботу, компьютеру,...); 2) детерминированность - на одинаковых исходных данных алгоритм должен всегда давать одинаковые результаты; 3) массовость - алгоритм должен работать на множестве однотипных исходных данных, потенциально бесконечном. Кодирование После того как алгоритм разработан, его записывают на алгоритмическом языке, и этот процесс называют кодированием алгоритма. Для выполнения данного этапа необходимо знать хотя бы один из многих существующих языков программирования, а лучше знать несколько, чтобы выбрать наиболее подходящий для решаемой задачи. Хотя этап кодирования считается менее творческим, чем предыдущие, для его успешного выполнения требуется хорошее знание, как самого языка, так и средств разработки программ: транслятора, компоновщика, программных библиотек и многого другого. Отладка и тестирование программы Целью данного этапа является поиск и устранение ошибок в программе. Ошибки бывают синтаксические (нарушение грамматики алгоритмического языка) и смысловые (искажение самого алгоритма решения задачи). О первых мы не говорим, их обычно обнаруживают и исправляют на этапе кодирования, совершая пробную трансляцию программы. Вторые же можно выявить только в процессе проверки программы на специально подобранных входных данных или в ходе опытной эксплуатации программы. Разделение процесса разработки программ на 5 этапов носит весьма условный характер. В случае простых программ, которые предстоит писать начинающим программистам, некоторые этапы сливаются, например проектирование с разработкой алгоритма или кодирование с отладкой. В случае сложных программ могут добавиться новые фазы разработки, например проектирование базы данных или создание изображений. Более важным является то, что работа над сложной программой состоит в многократном прохождении цикла разработки, т.к. в процессе тестирования могут быть обнаружены такие ошибки, для исправления которых придется вернуться не только к кодированию или алгоритмизации, но и к проектированию, а в тяжелых случаях -- пересмотреть и постановку задачи. Если же удалось разработать полезную программу, то работа над ней не заканчивается этапом тестирования, а переходит в фазу сопровождения. Программа живет, приобретает новые функции, совершенствует старые, избавляется от последних ошибок и, наконец, умирает, уступив натиску более молодых программ, покоряющих сердца пользователей сверканием инструментальных панелей, трехмерностью изображений и стереофоничностью звуков. электронный вычислительный система алгоритм 2. Элементарные алгоритмические структуры Последовательная алгоритмическая структура Всякий алгоритм имеет структуру. В программировании особое значение имеют три структуры алгоритма: последовательная, выбора и повторения. Последовательной называется такая структура алгоритма, при которой его отдельные части (операторы) выполняются поочередно одна за другой. В качестве примера рассмотрим алгоритм заварки чая. Начало Вскипятить воду. Ополоснуть чайник кипятком. Положить туда чай. Залить чайник кипятком. Конец. Очевидно, что результат выполнения алгоритма зависит от порядка следования его частей. Изменение этого порядка может плачевно сказаться на качестве чая. В Паскале последовательный алгоритм реализован в виде составного оператора Begin оператор; оператор; … оператор End в Си составной оператор выглядит так: {оператор оператор … оператор} Алгоритмическая структура выбора Хотя последовательная структура самая простая, а потому и самая привлекательная, далеко не все алгоритмы можно записать в виде простой последовательности операций. Пусть необходимо из двух чисел, A и B, выбрать большее и поместить его значение в переменную M. Алгоритм такого выбора можно записать так: если A > B , то M = A , иначе M = B. При выполнении алгоритма сначала вычисляется условие. Если условие истинно, выполняется оператор после слова "то", если условие ложно -- оператор после слова "иначе". Большинство языков программирования имеют специальную конструкцию для реализации алгоритма выбора -- условный оператор. Например, в языке Си выбор числа будет выглядеть так: if (A > B) M = A; else M = B; в Паскале так: if A > B then M := A else M := B. Алгоритмическая структура повторения Повторение определенных действий является необходимой частью большинства программ. Рассмотрим алгоритм утоления голода конфетами. Пока хочется есть повторять съесть одну конфету. Смысл этой алгоритмической структуры в том, что сначала проверяется условие и, если оно истинно, выполняется оператор, следующий за ключевым словом повторять. Затем снова проверяется условие и так далее, пока очередная проверка не установит, что условие ложно. На этом алгоритм заканчивается. Для реализации повторений в алгоритмических языках служат операторы цикла. В Паскале: while хочется есть do съесть одну конфету. В Си: while (хочется есть) съесть одну конфету; Комбинация структур Три рассмотренные структуры служат своего рода контейнерами для размещения операторов, причем в качестве операторов могут выступать как элементарные операторы языка, так и алгоритмические структуры. Покажем пример алгоритма, который вводит числа с клавиатуры и складывает их, пока не будет введено число 0. Накопленная сумма выводится на экран. Начало Занести в переменную сумму S число 0; Ввести с клавиатуры число X; Пока Х не равно 0 повторять Начало Добавить к сумме S значение Х; Ввести с клавиатуры число X; Конец; Сумму S вывести на экран дисплея; Алгоритм в целом является последовательностью, третий оператор последовательности -- повторение, а в это повторение вложена еще одна последовательность. Все прочее в записи алгоритма следует отнести к элементарным операторам алгоритмического языка, в данном случае русского. Отступы при записи алгоритма помогают понять, что куда вложено. Операторные скобки начало и конец записывают одну под другой, чтобы легко было сопоставить открывающую скобку закрывающей. Пошаговая детализация алгоритма Теоретически доказано, что трех алгоритмических структур: последовательности, выбора и повторения достаточно, чтобы записать любой алгоритм, который способна выполнить ЭВМ. При этом каждый внутренний оператор любой структуры может быть элементарным оператором или одной из алгоритмических структур. Все это поможет нам ответить на мучительный вопрос, встающий перед каждым начинающим программистом: “С чего начать разработку алгоритма?”. Во-первых, выбрать подходящую структуру для будущего алгоритма (последовательность, выбор или повторение). Во-вторых, заняться внутренними операторами выбранной структуры так, как если бы они были самостоятельными алгоритмами, т.е. выбрать структуру, заняться внутренними операторами и т.д. Углублять разработку следует до тех пор, пока внутренние операторы не окажутся элементарными операторами алгоритмического языка. Изложенный метод называется пошаговой детализацией алгоритма или разработкой алгоритма сверху вниз. Разработка алгоритма вычисления Sin X Перейдем от теории к практике и рассмотрим примеры разработки алгоритмов. Задача. Ввести X и подсчитать значение функции Sin X по формуле Решение. Как правило, на верхнем уровне детализации алгоритм имеет вид последовательности операторов. Начало Ввести X; Подсчитать сумму SinX; Вывести сумму SinX на экран. Конец Первый и третий пункты алгоритма просты, а второй нуждается в детализации. Чтобы посчитать какую-то сумму, вначале очищают переменную, предназначенную для хранения суммы, а потом, при помощи конструкции повторения, накапливают в ней слагаемые. В данной задаче накопление слагаемых будем продолжать, пока очередное слагаемое не станет достаточно маленьким, т.е. не перестанет заметно изменять сумму (можно математически доказать, что при любом X, начиная с некоторого слагаемого, они будут монотонно убывать). Начало Очистить переменную SinX = 0; Получить первое слагаемое Piece = X; Пока Piece > 0.0001 повторять Начало Прибавить очередное слагаемое к сумме SinX = SinX + Piece; Вычислить следующее слагаемое Piece; Конец Конец Остается уточнить, каким образом можно вычислить следующее слагаемое. Если присмотреться к формуле в условии задачи, то можно увидеть, что каждое следующее слагаемое получается из предыдущего путем умножения его на (-X*X) и деления на (i-1)*i, где i -- число, стоящее под знаком факториала в знаменателе слагаемого. Для краткости назовем его номером слагаемого, хотя тогда слагаемые будут нумероваться только нечетными числами. С учетом такой нумерации слагаемых уточним последний алгоритм. Начало Очистить переменную SinX = 0; Получить первое слагаемое Piece = X; Установить номер первого слагаемого i = 1; Пока Piece > 0.0001 повторять Начало Прибавить очередное слагаемое к сумме SinX = SinX+Piece; Определить номер следующего слагаемого i = i+2; Вычислить следующее слагаемое Piece = Piece * ( - X * X) / (( i - 1) * i); Конец Конец Окончательно алгоритм примет следующий вид: Начало Ввести X; Очистить переменную SinX = 0; Получить первое слагаемое Piece = X; Установить номер первого слагаемого i = 1; Пока Piece > 0.0001 повторять Начало Прибавить очередное слагаемое к сумме SinX = SinX+Piece; Определить номер следующего слагаемого i = i+2; Вычислить следующее слагаемое Piece = Piece * (-X*X) / ((i-1)*i); Конец Вывести сумму SinX на экран; Конец. 3. Основы программирования Назначением ЭВМ является выполнение программ. Программа содержит команды, определяющие порядок действий компьютера. Для составления программы, предназначенной для решения на ЭВМ какой-либо за дачи, требуется составление алгоритма ее решения. Применительно к ЭВМ алгоритм определяет вычислительный процесс, начинающийся с обработки некоторой совокупности возможных исходных данных и направленный на получение определенных этими исходными данными результатов. Термин вычисли тельный процесс распространяется и на обработку других видов информации, напри мер, символьной, графической или звуковой. Алгоритм всегда рассчитан на конкретного исполнителя. В нашем случае таким исполнителем является ЭВМ. Для обеспечения, возможности реализации на ЭВМ алгоритм должен быть описан на языке, понятном компьютеру, то есть на языке программирования. Таким образом, можно дать следующее определение программы. Программа для ЭВМ представляет собой описание алгоритма и данных на некотором языке программирования, предназначенное для последующего автоматического выполнения. Двоичный язык является непосредственно машинным языком. В настоящее время такие языки программистами практически не применяются. Язык Ассемблера - это язык, предназначенный для представления в удобочитаемой символической форме программ, записанных на машинном языке. Он позволяет программисту пользоваться мнемоническими кодами операций, присваивать удобные имена ячейкам и областям памяти, а также задавать наиболее удобные схемы адресации. Язык Макроассемблера является расширением языка Ассемблера путем включения в него макросредств. С их помощью в программе можно описывать последовательности инструкций с параметрами -- макроопределения. После этого программист может использовать снабженные аргументами макрокоманды, которые в процессе ассемблирования программы автоматически замещаются - макрорасширениями. Макрорасширение представляет собой макроопределение с подставленными вместо параметров аргументами. Другими словами, язык Макроассемблера представляет средства определения и использования новых, более мощных команд как последовательности базовых инструкций, что несколько повышает его уровень. Языки Ассемблера и Макроассемблера применяются системными программистами-профессионалами с целью использования всех возможностей оборудования ЭВМ и по лучения эффективной по времени выполнения и по требуемому объему памяти про граммы. На этих языках обычно разрабатываются относительно небольшие программы, входящие в состав системного программного обеспечения: драйверы, утилиты и другие. Язык программирования С (Си) первоначально был разработан для реализации операционной системы UNIX в начале 70-х годов. В последующем приобрел высокую популярность среди системных и прикладных программистов. В настоящее время этот язык реализован на большинстве ЭВМ. В СИ сочетаются достоинства современных высокоуровневых языков в части управляющих конструкций и структур данных с возможностями доступа к аппаратным средствам ЭВМ на уровне, который обычно ассоциируется с языком низкого уровня типа языка Ассемблера. Язык С имеет синтаксис, обеспечивающий краткость программы, а компиляторы способны генерировать эффективный объектный код. Одна из наиболее существенных особенностей С состоит в нивелировании различий между выражениями и операторами, что приближает его к функциональным языкам. В частности, выражение может обладать побочным эффектом присваивания, а также может использоваться в качестве оператора. Нет также четкой границы между процедура ми и функциями, более того, понятие процедуры не вводится вообще. Синтаксис языка затрудняет программирование и восприятие составленных про грамм. Отсутствует и строгая типизация данных, что предоставляет дополнительные возможности программисту, но не способствует написанию надежных программ. Ваsiс (Бэйсик) (Beginners All-purpose Symbolic Instruction Code) - многоцелевой язык символических инструкций для начинающих) представляет собой простой язык программирования, разработанный в 1964 году для использования новичками. Он был разработан как простейший язык для непосредственного общения человека с вычислительной машиной. Поэтому первоначально работа велась в интерактивном режиме с использованием интерпретаторов. В настоящее время для этого языка имеются также и компиляторы. Согласно концепциям, заложенным в Basic, этот язык в смысле строгости и стройности является антиподом языка Pascal. В частности, в нем широко распространены различные правила умолчания, что считается плохим тоном в большинстве языков программирования подобного типа. Basic широко распространен на ЭВМ различных типов и очень популярен в среде программистов особенно начинающих. Существует множество диалектов этого языка, мало совместимых между собой. Basic активно поглощает многие концепции и новинки из других языков. Поэтому он достаточно динамичен и нельзя однозначно определить его уровень. Pascal (Паскаль) является одним из наиболее популярных среди прикладных программистов процедурным языком программирования, особенно для ПЭВМ. Разработанный в 1970 году швейцарским специалистом в области вычислительной техники профессором Н. Виртом, язык назван в честь французского математика и по замыслу автора предназначался для обучения программированию. Однако язык получился на столько удачным, что стал одним из основных инструментов прикладных и системных программистов при решении задач вычислительного и информационно-логического характера. В 1979 году был подготовлен проект описания языка - Британский стандарт языка программирования Pascal BS6192, который стал также и международным стандартом ISO 7185. В языке Pascal реализован ряд концепций, рассматриваемых как основа «дисциплинированного» программирования и заимствованных впоследствии разработчика ми многих языков. Одним из существенных признаков языка Pascal является последовательная и достаточно полная реализация концепции структурного программирования. Причем это осуществляется не только путем упорядочивания связей между фрагментами программы по управлению, но и за счет структуризации данных. Кроме того, в языке реализована концепция определения новых типов данных на основе уже имеющихся. Этот язык, в отличие от языка С, является строго типизированным. Pascal характеризуется: - высоким уровнем; - широкими возможностями; - стройностью, простотой и краткостью; - строгостью, способствующей написанию эффективных и надежных программ; - высокой эффективностью реализации на ЭВМ. Pascal реализован на ЭВМ различных типов, но наиболее распространен и развит для ПЭВМ. В настоящее время широко используются такие версии этого языка для ПЭВМ, как Borland Pascal и Turbo Pascal. Основы визуального программированияВ последнее время многие программы, в особенности объектно-ориентированные, реализуются как системы визуального программирования. Отличительной особенностью таких систем является мощная среда разработки программ из готовых «строительных блоков», позволяющая создать интерфейсную часть программного продукта в диалоговом режиме, практически без кодирования программных операций. К числу объектно-ориентированных систем визуального программирования относятся: Visual Basic, Delphi, C++Builder и Visual C++. В данном разделе рассматриваются начальные сведения по системе программирования Delphi.Среда DelphiСреда Delphi визуально реализуется несколькими одновременно раскрытыми окнами на экране: главное окно (оно имеет заголовок Project1), окно формы (заголовок Form1), окно инспектора объектов (Object Inspector) и окно кода программы (Unit1.pas). Слева в окне кода располагается вспомогательное окно браузера, с помощью которого можно просматривать структуру всех объявлений в окне кода.Главное окно осуществляет основные функции управления проектом создаваемой программы. В главном окне располагается главное меню Delphi, набор пиктографических командных кнопок и палитра компонентов. В данном разделе приводятся некоторые пункты системы меню.Таблица 1 - Система меню. Опция File
Опция Edit. Назначения пунктов меню опции Edit совпадают с одноименными пунктами текстового процессора Word. Таблица 2 - Опция Project
Опция Run
Пиктографические кнопки открывают быстрый доступ к наиболее важным опциям главного меню. Палитра компонентов - занимает правую часть главного окна и имеет закладки, обеспечивающие быстрый поиск нужного компонента. Под компонентом понимается некий функциональный элемент, содержащий определенные свойства и размещаемый программистом в окне формы. С помощью компонентов создается каркас программы, ее видимые на экране внешние появления: окна, кнопки, списки и т.д. Окно формы - представляет собой проект Windows - окна будущей программы. Вначале это окно содержит только стандартные для Windows интерфейсные элементы - кнопки вызова системного меню, максимизации, минимизации, закрытия окна, полосу заголовка и очерчивающую рамку. Вся рабочая область окна пуста. Программист при разработке проекта извлекает необходимые компоненты и размещает их на поле формы, заполняя его интерфейсными элементами. Окно Инспектора Объектов. Любой размещаемый на форме компонент характеризуется некоторым набором параметров: размером, цветом и т.д. Часть параметров программист может изменять. Для изменения параметров предназначено окно Инспектора Объектов. Окно содержит две страницы - Properties (Свойства) и Events (События). Страница Properties служит для установки нужных свойств компонента, страница Events позволяет определить реакцию компонента на то или иное событие. Совокупность свойств отображает видимую строну компонента, совокупность событий его поведенческую сторону: будет ли компонент реагировать на щелчок мыши или нажатие клавиши и т.д. Каждая страница окна Инспектора Объектов представляет собой двухколонную таблицу, левая колонка содержит название свойства или события, правая - конкретное значение свойства или имя подпрограммы, обрабатывающей соответствующее событие. Строки выбираются щелчком мыши. Если слева от имени свойства указан знак «+» (сложное свойство), то для раскрытия списка значений данного свойства следует щелкнуть мышью по символу «+». Щелчок мышью на правой колонке строки таблицы активизирует указанное в ней значение свойства, при этом в правом конце может появиться или кнопка с многоточием, или кнопка со стрелкой. Щелчок по кнопке с многоточием приводит к появлению на экране диалогового окна, с помощью которого устанавливается значение сложного свойства, щелчок по кнопке со стрелкой ведет к раскрытию списка возможных значений свойства. Программирование в DelphiПроцесс создания Delphi - программы разбивается на две фазы: фазу конструирования формы и фазу кодирования. Конструирование формы осуществляется с помощью выбора компонентов из палитры и размещения их на форме.Размещение компонента1. Выбрать компонент из палитры компонентов (щелкнуть по нему мышью);2. Щелкнуть мышью по точке рабочего пространства формы, где должен располагаться левый верхний угол компонента.Чтобы придать компоненту нужные свойства, используется страница Properties Инспектора Объектов. Чтобы присвоить какое-либо свойство компоненту программно, необходимо выполнить оператор присваивания. В левой части оператора должно быть указано составное имя, а справа - значение.<имя компонента>.<имя свойства>:=<значение>Реакция на событияЧтобы компонент мог откликаться на то или иное событие, программист должен создать фрагмент программы, который называется обработчиком события и указать его имя на странице Events Инспектора Объектов. Этот фрагмент должен представлять собой последовательность операторов, в которой программист указывает, что именно должна делать программа в ответ на то или иное событие.Обработчик события оформляется в виде процедуры, имеющей составное имя. Чтобы заставить Delphi самостоятельно сделать заготовку для процедуры обработчика того или иного события необходимо дважды щелкнуть в правой части строки соответствующего события на странице Events.Пример. Разработать программу, которая бы по нажатой кнопке выводила на экран сообщение ”Моя первая программа на Delphi”.1. Запустить Delphi (как любое приложение);2. Создать новое приложение (в главном меню выбрать New Application);3. Установить свойства формы с помощью Инспектора Объектов имя формы - Name; заголовок окна - Caption; цвет - Color: положение формы и ее размер - Left, Top (верхний левый угол),Width (ширина). Height (высота));4. Со страницы Standard выбрать компонент Label (метка), предназначенный для размещения различного рода надписей (Щелкнуть по нему);5. Щелкнуть мышью по форме, так чтобы компонент расположился в центре.Новый компонент имеет стандартное имя Label1 и надпись на нем повторяет это имя. Изменить эту надпись можно установив свойство Caption. Его можно изменить программно или с помощью Инспектора Объектов;Перенести на форму с той же страницы компонент кнопка (Button). При щелчке на кнопке в работающей программе возникает событие OnClick1. (по щелчку);2. Перейти на страницу событий (щелчком по вкладке Events) в Инспекторе Объектов. Выбрать строку OnClick. Дважды щелкнуть по правой части данной строки. Delphi автоматически вставит заготовку для процедуры, запускаемой по данному событию.Остается вставить оператор присваивания свойству Caption значения ”Моя первая программа на Delphi”.Button1.Caption:='Моя первая программа на Delphi'.Литература1. Абрамов С.А., Зима Е.В. Начала программирования на языке Паскаль. - М.: Наука, 1987;2. Абрамов С.А., Зима Е.В. Начала информатики. - М.: Наука, 1988;3. Дагене В.А., Григас Г.К., Аугутис К.Ф. 100 задач по программированию. - М.:, Просвещение, 1993;4. Довгаль С.И., Литвинов Б.Ю., Сбитнев А.И. Персональные ЭВМ: Турбо-Паскаль V7.0, Объектное программирование, Локальные сети. (Учебное пособие).- Киев, «Информсистема сервис», 1993;5. Епанешников А.М., Епанешников В.А. Программирование в среде Turbo-Pascal 7.0 .- М.:, Диалог МИФИ, 1993;6. Ильина М.М. Работа в Word 7.0 на примерах. - М.: Восточная книжная компания, 1996;7. Йенсен К., Вирт Н. Паскаль: Руководство для пользователя. /Пер. с англ. М.Л.Сальникова, Ю.В.Сальниковой. - М.:, Компьютер, 1993;8. Microsoft Windows 95 .Шаг за шагом: Практическое пособие. /Пер.с англ.- М.: ЭКОМ, 1996;9. Новиков Ф.,А., Яценко А.,Д. Microsoft Office в целом. - СПб.: ВHV-Санкт-Петербург, 1995;10. Перминов О.Н. Программирование на языке Паскаль. - М.: Радио и связь, 1988;11. Поляков Д.Б., Круглов Н.Ю. Программирование в среде Турбо-Паскаля. - изд.МАИ., М.:, 1992;12. Прайс Д. Программирование на языке Паскаль. Практическое руководство. /Пер. с англ. - М.:, Мир, 1987;13. Семашко Г.Л., Салтыков А.И. Программирование на языке Паскаль. - М.: Наука. Гл. ред. физ.-мат. лит.,1993;Размещено на http://www.allbest.ru |
РЕКЛАМА
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
БОЛЬШАЯ ЛЕНИНГРАДСКАЯ БИБЛИОТЕКА | ||
© 2010 |