Разработка алгоритмов различной структуры и их реализация с помощью программных средств

Курсовая работа

Благодаря бурному развитию науки информатики и проникновению её в различные отрасли народного хозяйства слово «алгоритм» стало часто встречающимся и наиболее употребляемым в житейском плане понятием для широкого круга специалистов. Более того, с переходом к информационному обществу алгоритмы становятся одним из важнейших факторов цивилизации.

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

Тем не менее, взаимовлияние теоретических областей, связанных с вычислительной техникой, и теории алгоритмов также, несомненно.

Теория алгоритмов оказала влияние на теоретическое программирование. В частности, большую роль в теоретическом программировании играют модели вычислительных автоматов, которые, по существу, являются ограничениями тех представительных вычислительных моделей, которые были созданы ранее в теории алгоритмов. Трактовка программ, как объектов вычисления, операторы, используемые для составления структурированных программ (последовательное выполнение, разветвление, повторение) пришли в программирование из теории алгоритмов. Обратное влияние выразилось, например, в том, что возникла потребность в создании и развитии теории вычислительной сложности алгоритмов. Таким образом, можно сказать, что теория алгоритмов применяется не только в информатике, но и в других областях знаний.

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

1 Теоретическая часть

1.1 Понятие алгоритма и его свойства

Алгоритм —

«алгоритм»

исполнителя

среду исполнителя.

Алгоритм характеризуется следующими свойствами: дискретностью, массовостью, определенностью, результативностью, формальностью .

Дискретность, Массовость —, Определенность, Результативность —, Формальность —

1.2 Способы описания алгоритмов

Существуют следующие способы описания алгоритма: словесное описание, псевдокод, блок-схема, программа.

Словесное

Никаких правил составления словесного описания не существует. Запись алгоритма осуществляется в произвольной форме на естественном, например, русском языке. Этот способ описания не имеет широкого распространения, так как строго не формализуем (под «формальным» понимается то, что описание абсолютно полное и учитывает все возможные ситуации, которые могут возникнуть в ходе решения); допускает неоднозначность толкования при описании некоторых действий; страдает многословностью.

11 стр., 5119 слов

Понятие об алгоритмах

... При рассмотрении конкретных вопросов в теории алгоритмов всегда имеется в виду какая-то конкретная модель алгоритма. Виды алгоритмов и их реализация Алгоритм применительно к вычислительной машине – ... образует систему команд исполнителя. Алгоритм должен содержать только те действия, которые допустимы для данного исполнителя. Свойства алгоритмов Данное выше определение алгоритма нельзя считать строгим ...

Псевдокод

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

Блок-схема

Рассмотрим некоторые основные конструкции, использующиеся для построения блок-схем.

Дискретность 1 Дискретность 2Блок, характеризующий начало/конец алгоритма (для

подпрограмм — вызов/возврат):

Дискретность 3

Блок — процесс, предназначенный для описания

отдельных действий:

Дискретность 4 Блок — предопределенный процесс, предназначенный для обращения к _______________________________________________________________________________________________________________________________вспомогательным алгоритмам (подпрограммам):

Дискретность 5

Блок — ввода/вывода с неопределенного носителя:

Дискретность 6

Блок — ввод с клавиатуры:

Дискретность 7

Блок — вывод на монитор:

Дискретность 8

Блок — вывод на печатающее устройство:

Блок — решение (проверка условия или условный блок):

Дискретность 9 Нет Да

Дискретность 10

Блок, описывающий цикл с параметром:

Дискретность 11 Блок — границы цикла, описывающий циклические

процессы типа: «цикл с предусловием», «цикл

с постусловием»:

Дискретность 12
Дискретность 13

Соединительные блоки:

Описания алгоритма в словесной форме, на псевдокоде или в виде блок-схемы допускают некоторый произвол при изображении команд. Вместе с тем она настолько достаточна, что позволяет человеку понять суть дела и исполнить алгоритм. На практике исполнителями алгоритмов выступают компьютеры. Поэтому алгоритм, предназначенный для исполнения на компьютере, должен быть записан на «понятном» ему языке, такой формализованный язык называют языком программирования.

Программа —

1.3 Основные алгоритмические конструкции

Элементарные шаги алгоритма можно объединить в следующие алгоритмические конструкции: линейные (последовательные), разветвляющиеся и циклические.

1.3.1 Линейная алгоритмическая конструкция

Линейным принятоназывать вычислительный процесс, в котором операции выполняются последовательно, в порядке их записи. Каждая операция является самостоятельной, независимой от каких-либо условий. На схеме блоки, отображающие эти операции, располагаются в линейной последовательности.

у=(b2-ас):(а+с).

Программа  1

Рисунок 1 – Линейный алгоритм

1.3.2 Разветвляющаяся алгоритмическая конструкция

Разветвляющейся

Разветвляющейся 1

Ложь (Нет) Истина (Да)

Рисунок 2 — Полное ветвление

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

Разветвляющейся 2

Истина (Да)

Ложь (Нет)

Рисунок 3 — Неполное ветвление

В зависимости от типа и числа проверяемых условий различают:

  • ветвление с простым условием (условие — выражение отношения);
  • ветвление с составным условием (условие — логическое выражение);
  • сложное ветвление (несколько условий).

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

1.3.3 Алгоритмическая конструкция «Цикл»

Циклическим называется процесс многократного повторения некоторого участка вычислений при изменении хотя бы одной из входящих в него величин.

Повторяющийся участок вычисления называется циклом. Цикл организуют по определенным правилам. Циклический алгоритм состоит из подготовки цикла, тела цикла, условия продолжения цикла. В подготовку цикла входят действия, связанные с заданием исходных значений для параметра цикла (начальное и конечное значения, шаг параметра цикла).

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

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

В условии продолжения цикла определяется необходимость дальнейшего выполнения повторяющихся действий (тела цикла).

Если параметр цикла превысил конечное значение, то выполнение цикла должно быть прекращено.

При разработке алгоритма циклической структуры выделяют следующие понятия: параметр цикла – величина, с изменением которой связано многократное выполнение цикла; начальное и конечное значения параметров цикла; шаг цикла – значение, на которое изменяется параметр цикла при каждом повторении. Зависимость, связывающая текущее и предыдущее значения параметра цикла, определяет закон изменения параметра цикла.

Зависимость, предписывающая повторение цикла, либо выход из него, называется условием повторения цикла.

Все циклические процессы по признаку определения количества повторений разделяются на два класса.

Арифметическим называется циклический процесс, число повторений в котором может быть определено заранее, т.е. не зависит от результатов счёта в теле цикла.

Итерационным является циклический процесс, число повторений в котором зависит от результатов вычислений в теле цикла и не может быть определено заранее.

На приведенных ниже рисунках показаны примеры циклических процессов.

Разветвляющейся 3

Рисунок 4 — Блок-схема цикла с предусловием

Разветвляющейся 4

Рисунок 5 — Блок-схема цикла с постусловием

1.4 Обзор программных и аппаратных средств

1.4.1 Алгоритмический язык

Паскаль (англ. Pascal ) — высокоуровневый язык программирования общего назначения. Один из наиболее известных языков программирования, широко применяется в промышленном программировании, обучении программированию в высшей школе, является базой для большого числа других языков.

Паскаль был создан Никлаусом Виртом в 1968-69 годах после его участия в работе комитета разработки стандарта языка Алгол-68. Он был опубликован в 1970 году Виртом как небольшой и эффективный язык, чтобы способствовать хорошему стилю программирования, использовать структурное программирование и структурированные данные.

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

Название языку дано в честь выдающегося французского математика, физика, литератора и философа Блеза Паскаля.

Компилятор Паскаля был написан на самом Паскале c использованием метода раскрутки.

Особенностями языка являются строгая типизация и наличие средств структурного (процедурного) программирования. Паскаль был одним из первых таких языков. По мнению Н. Вирта, язык должен способствовать дисциплинированию программирования, поэтому, наряду со строгой типизацией, в Паскале сведены к минимуму возможные синтаксические неоднозначности, а сам синтаксис автор постарался сделать интуитивно понятным даже при первом знакомстве с языком.

Тем не менее, первоначально язык имел ряд ограничений: невозможность передачи функциям массивов переменной длины, отсутствие нормальных средств работы с динамической памятью, ограниченная библиотека ввода-вывода, отсутствие средств для подключения функций написанных на других языках, отсутствие средств раздельной компиляции и т. п. Подробный разбор недостатков языка Паскаль того времени был выполнен Брайаном Керниганом в статье «Почему Паскаль не является моим любимым языком программирования» (эта статья вышла в начале 1980-х, когда уже существовал язык Модула-2, потомок Паскаля, избавленный от большинства его пороков, а также более развитые диалекты Паскаля).

Некоторые недостатки Паскаля были исправлены в ISO-стандарте 1982 года, в частности, в языке появились открытые массивы, давшие возможность использовать одни и те же процедуры для обработки одномерных массивов различных размеров.

Необходимо заметить, что многие недостатки языка не проявляются или даже становятся достоинствами при обучении программированию. Кроме того, по сравнению с основным языком программирования в академической среде 1970-х (которым был Фортран, обладавший гораздо более существенными недостатками), Паскаль представлял собой значительный шаг вперёд. В начале 1980-х годов в СССР для обучения школьников основам информатики и вычислительной техники академик А.П. Ершов разработал алголо-паскалеподобный «алгоритмический язык».

Наиболее известной реализацией Паскаля, обеспечившая широкое распространение и развитие языка, является Turbo Pascal фирмы Borland, выросшая затем в объектный Паскаль для DOS (начиная с версии 5.5) и Windows и далее в Delphi, в которой были внедрены значительные расширения языка.

Диалекты Паскаля, применяемые в Turbo Pascal для DOS и Delphi для Windows, стали популярны из-за отстутствия других успешных коммерческих реализаций.

Описание каждого элемента языка задается его синтаксисом и семантикой. Синтаксические определения устанавливают правила построения элементов языка. Семантика определяет смысл и правила использования тех элементов языка, для которых были даны синтаксические определения. Паскаль, в его первоначальном виде, представляет собою чисто процедурный язык и включает в себя множество алголоподобных структур и конструкций с зарезервированными словами наподобие if, then, else, while, for, и т. д. Тем не менее, Паскаль также содержит большое количество возможностей для структурирования информации и абстракций, которые отсутствуют в изначальном Алголе-60, такие как определение типов, записи, указатели, перечисления, и множества. Эти конструкции были частично унаследованы или инспирированы от языков Симула-67, Алгол-68, созданного Никлаусом ВиртомAlgolW и предложены Хоаром.

В современных диалектах (Free Pascal) доступны такие операции как перегрузка операторов и функций.

1.4.2 Электронные таблицы

электронными таблицами.

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

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

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

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

Программа Microsoft Excel предназначена для работы с таблицами данных, преимущественно числовых. При формировании таблицы выполняют ввод, редактирование и форматирование текстовых и числовых данных, а также формул. Наличие средств автоматизации облегчает эти операции. Созданная таблица может быть выведена на печать.

При выполнении задач к данной курсовой работе мы использовали следующие функции Microsoft Excel:

Создавали рабочую книгу, Ввод данных в ячейку, Автозаполнение ., Создание простых формул

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

Автосуммирование., Построение диаграмм и графиков функций.

Диаграмма представляет собой вставной объект, внедренный на один из листов рабочей книги. Она может располагаться на том же листе, на котором находятся данные, или на любом другом листе (часто для отображения диаграммы отводят отдельный лист).

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

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

1.4.3 Система

Mathcad является математическим редактором, позволяющим проводить разнообразные научные и инженерные расчеты, начиная от элементарной арифметики и заканчивая сложными реализациями численных методов. Пользователи Mathcad — это студенты, ученые, инженеры, разнообразные технические специалисты. Благодаря простоте применения, наглядности математических действий, обширной библиотеке встроенных функций и численных методов, возможности символьных вычислений, а также превосходному аппарату представления результатов (графики самых разных типов, мощных средств подготовки печатных документов и Web-страниц), Mathcad стал наиболее популярным математическим приложением.

Mathcad 11, в отличие от большинства других современных математических приложений, построен в соответствии с принципом WYSIWYG («What You See Is What You Get» — «что Вы видите, то и получите»).

Поэтому он очень прост в использовании, в частности, из-за отсутствия необходимости сначала писать программу, реализующую те или иные математические расчеты, а потом запускать ее на исполнение. Вместо этого достаточно просто вводить математические выражения с помощью встроенного редактора формул, причем в виде, максимально приближенном к общепринятому, и тут же получать результат Кроме того, можно изготовить на принтере печатную копию документа или создать страницу в Интернете именно в том виде, который этот документ имеет на экране компьютера при работе с Mathcad Создатели Mathcad сделали все возможное, чтобы пользователь, не обладающий специальными знаниями в программировании (а таких большинство среди ученых и инженеров), мог в полной мере приобщиться к достижениям современной вычислительной науки и компьютерных технологий. Для эффективной работы с редактором Mathcad достаточно базовых навыков пользователя. С другой стороны, профессиональные программисты (к которым относит себя и автор этих строк) могут извлечь из Mathcad намного больше, создавая различные программные решения, существенно расширяющие возможности, непосредственно заложенные в Mathcad.

В соответствии с проблемами реальной жизни, математикам приходится решать одну или несколько из следующих задач:

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

Со всеми этими (а также некоторыми другими) задачами с успехом справляется Mathcad:

  • математические выражения и текст вводятся с помощью формульного редактора Mathcad, который по возможностям и простоте использования не уступает, к примеру, редактору формул, встроенному в Microsoft Word;
  • математические расчеты производятся немедленно, в соответствии с введенными формулами;
  • графики различных типов (по выбору пользователя) с богатыми возможностями форматирования вставляются непосредственно в документы;
  • возможен ввод и вывод данных в файлы различных форматов;
  • документы могут быть распечатаны непосредственно в Mathcad в том виде, который пользователь видит на экране компьютера, или сохранены в формате RTF для последующего редактирования в более мощных текстовых редакторах (например Microsoft Word);
  • возможно полноценное сохранение документов Mathcad 11 в формате Web-страниц (генерация вспомогательных графических файлов происходит автоматически);
  • имеется опция объединения разрабатываемых Вами документов в электронные книги, которые, с одной стороны, позволяют в удобном виде хранить математическую информацию, а с другой — являются полноценными Mathcad-программами, способными осуществлять расчеты;
  • символьные вычисления позволяют осуществлять аналитические преобразования, а также мгновенно получать разнообразную справочную математическую информацию

Таким образом, следует хорошо представлять себе, что в состав Mathcad входят несколько интегрированных между собой компонентов — это мощный текстовый редактор для ввода и редактирования как текста, так и формул, вычислительный процессор — для проведения расчетов согласно введенным формулам и символьный процессор, являющийся, по сути, системой искусственного интеллекта Сочетание этих компонентов создает удобную вычислительную среду для разнообразных математических расчетов и, одновременно, документирования результатов работы.

2 Практическая часть

Задача 1. Даны x,y,z. Вычислить a, b если

 система 1  система 2

Постановка задачи.

Входные данные –значения x , y, z, а также функции а и b

Выходные данные – значение функции a и b для различных значений аргумента х ,y,z

Цель реализации алгоритма: нахождение значений a и b при заданных значениях x, y, z.

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

Словесное описание алгоритма.

Начало

1. Ввести x, y, z;

2. a:=y+(x/(y*y+(x*x/(y+(x*x*x/3)))));

3. b:=(1+sqr(sin(z/2)/cos(z/2)));

4. Вывод (a, b).

Конец

Текст программы приведен ниже

Program zadacha1;

Var

x, y, z:real;

  • a, b:real;

begin

writeln(‘vvedite x,y,z’);

  • readln(x,y,z);
  • a:=y+(x/(y*y+(x*x/(y+(x*x*x/3)))));
  • b:=(1+sqr(sin(z/2)/cos(z/2)));
  • writeln(‘a=’,a:7:3,’b=’,b:7:3);
  • end.

Задача 2. Даны действительные числа x, y. Определить принадлежит ли точка с координатами х и у заштрихованной части плоскости.

У 1

 система 3

-1 1 х

  • 1

Постановка задачи.

Входные данные –значения x , y.

Выходные данные – нужно определить принадлежит ли точка с координатами х и у заштрихованной плоскости.

Цель реализации алгоритма: ввести значения х и у, и определить принадлежит ли точка плоскости. Для этого мы будем использовать функцию программиста.

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

Словесное описание алгоритма.

Начало

1. Читаем с экрана x и y

2. Определяем положение заданной точки относительно первого отрезка (1,0;0,1)

Положение определяем, считая произведение векторов проходящих через:

1-й вектор начальная – конечная точка отрезка,

2-й вектор начальная точка отрезка – заданная точка.

Произведение > 0 => точка лежит слева от отрезка,

Произведение < 0 => справа,

Произведение = 0 =>лежит на отрезке.

3. Аналогично считаем для оставшихся отрезков.

4. Если для все отрезков точка находится слева, значит она внутри области,

Если хоть для одного справа, значит вне области , ну и если лежит на отрезке, то на границе области.

5. Выводим ответ.

Конец

(Направление отрезков против часовой стрелки)

Текст программы приведен ниже

programzadacha2;

var

x,y,z: real;

  • function location(xlin1,ylin1,xlin2,ylin2: real): integer;

var

tmp: real;

begin

tmp := (xlin2-xlin1)*(y-ylin1) — (ylin2-ylin1)*(x-xlin1);

  • if tmp < 0 then location:= -1

else if tmp > 0 then location:= 1

else location:= 0;

  • end;

begin

repeat

write(‘x = ‘);

  • Readln(x);
  • write(‘y = ‘);
  • Readln(y);
  • if ((location(1,0,0,1)>
  • 0) and (location(0,1,-1,0)>0) and (location(-1,0,0,-1)>
  • 0) and (location(0,-1,1,0)>0))

then writeln(‘tochka prinadlegit oblasti’)

else if ((location(1,0,0,1)< 0) or (location(0,1,-1,0)<0) or (location(-1,0,0,-1)< 0) or (location(0,-1,1,0)<0))

then writeln(‘tochka ne prinadlegit oblasti’)

else writeln(‘tochka na granice oblasti’);

  • Writeln;
  • until false;
  • end.

Задача 3. Дано действительное число а. Вычислить f(a), если

 система 4

Постановка задачи.

Входные данные – значение а, а так же функция f(x).

Выходные данные – значение функции f(a).

Цель реализации алгоритма: ввести значение а, вычислить значение f(a), при известной функции f(x).

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

Словесное описание алгоритма:

Начало

1. Читаем а

2. Проверяем условие -2<=a<=2

3. Если верно, то f(a) = 2*a^2 иначе f(a) = 4

Выводим f

Конец

Текст программы приведен ниже

program zadacha3;

var

a,f: double;

begin

repeat

write(‘a = ‘);

  • readln(a);
  • if ( (a>= -2) and (a<= 2) ) then

f:= 2*sqr(a)

else f:= 4;

  • write(‘f(a) = ‘);
  • writeln(f:0:3);
  • writeln;
  • writeln;
  • until false;
  • end.

Задача 4. Даны натуральное число n, действительная матрица размером n*9. Найти среднее арифметическое каждой из строк.

Постановка задачи.

Входные данные – натурально число n, матрица размером n*9

Выходные данные – в зависимости от n, получаем определенное количество строк и выводим среднее арифметическое каждой из строк.

Цель реализации алгоритма: ввести значение n, создать матрицу размера n*9,вычислить среднее арифметическое каждой из строк.

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

Словесное описание алгоритма:

Начало

1. Читаем n

2. Создаем динамический массив размерностью nx9

3. В цикле поочередно считываем с экрана его элементы

4. В цикле считаем сумму элементов в строке и делим ее на 9

5. Выводим полученный ответ на экран

Конец

Текстпрограммы

program Project4;

var

A: array of array of double;

  • n, i, j: integer;
  • tmp: double;

begin

write(‘n = ‘);

  • readln(n);
  • SetLength(A,n);

for i:=0 to n-1 do

SetLength(A[i],9);

for i:=0 to n-1 do

for j:=0 to 8 do

begin

write(‘A[‘,i,’,’,j,’] = ‘);

  • readln(A[i,j]);
  • end;

for i:=0 to n-1 do

begin

tmp:= 0;

for j:= 0 to 8 do

begin

tmp:= tmp + A[i,j];

  • end;
  • writeln(‘str’,i+1,’ ‘,tmp/9:0:3);
  • end;
  • readln;
  • end.

Задача 5. Получить единичную квадратную матрицу порядка n.

Постановка задачи.

Входные данные – n-число строк и столбцов

Выходные данные – матрица размером n*n.

Цель реализации алгоритма: ввести значение n, создать единичную матрицу размера n*n, для этого будем использовать массив.

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

Словесное описание алгоритма:

Начало

1. Читаем n

2. Создаем динамический массив размерностью nxn

3. В цикле заполняем значениями его элементы:

Если номер строки и номер столбца совпадают, то 1

Иначе 0.

4. Выводим массив на экран.

Конец

Текстпрограммы

program Project5;

var

A: array of array of byte;

  • n,i,j: integer;

begin

write(‘n = ‘);

  • readln(n);
  • SetLength(A,n);

for i:= 0 to n-1 do

SetLength(A[i],n);

for i:= 0 to n-1 do

for j:= 0 to n-1 do

if (i = j) then A[i,j]:= 1

else A[i,j]:= 0;

for i:= 0 to n-1 do

begin

writeln;

for j:= 0 to n-1 do

write(A[i,j],’ ‘);

  • end;
  • writeln;
  • readln;
  • end.

Задача 6. Вычислить значения z, соответствующие каждому значению х (хn<=x<=xk шаг изменения х равен dx) по формуле  система 5.

Вычислить  система 6 , сумму значений z, произведение отрицательных значений z, количество вычислительных z. Контрольный расчет провести при а=2.62, хn=-3, xk=3, dx=0.6.

Постановка задачи.

Входные данные — Xn, Xk, dx, a.

Выходные данне – Z и F.

Цель реализации алгоритма: ввести значение Xn, Xk, dx, a, и при этих значениях вычислить по приведенным фомулам Z и F.

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

Словесное описание алгоритма:

Начало

1. Читаем Xn, Xk, dx, a

2. x = Xn

3. Пока x <= Xk делаем:

1) Вычисляем z

2) Если z >=0 то добавляем его в сумму положительных z

Иначе в произведение отрицательных

3) Добавляем z в общую сумму

4) Увеличиваем на 1 количество посчитанных z

5) x = x + dx

4. F = произведение отрицательных z + сумма положительных z

5. Выводим полученные значения на экран

Конец

Текст программы

program Project6;

var

Xn, Xk, x, dx, a, tmp,

summa,

proizveden,

F,

allsumma : double;

  • Count: integer;
  • first: boolean;
  • function z(x: double): double;

begin

z:= (sqr(a*x)*exp(1/3*ln(1/sqr(a+x))) )/( a*ln(a + sqr(x)) ) ;

  • end;

begin

write(‘Xn = ‘ );

  • readln(Xn);
  • write(‘Xk = ‘);
  • readln(Xk);
  • write(‘dx = ‘);
  • readln(dx);
  • write(‘a = ‘);
  • readln(a);
  • if (Xk < Xn) then

begin

tmp:= Xk;

  • Xk:= Xn;
  • Xn:= tmp;
  • end;
  • x:= Xn;
  • proizveden:= 0;
  • summa:= 0;
  • count:= 0;
  • allsumma:= 0;
  • first:= true;
  • while (x<=Xk) do

begin

tmp:= z(x);

  • if (tmp < 0) then if first then

begin

proizveden:= tmp;

  • first:= false;

end

else

proizveden:= proizveden * tmp

else summa:= summa + tmp;

  • allsumma:= allsumma + tmp;
  • Count:= Count + 1;
  • x:= x + dx;
  • end;
  • F:= proizveden + summa;
  • writeln;
  • writeln(‘F = ‘, F:0:5);
  • writeln(‘summa znachenij z = ‘, allsumma:0:5);
  • writeln(‘proizvedenie otricatelnih z = ‘, proizveden:0:5);
  • writeln(‘kolichestvo vicheslitelnih z = ‘, Count);
  • readln;
  • end.

Задача 7. Дано: а=5 da=-0.5. Z вычислять по формуле: система 7, где q=a2-a. Считать до тех пор, пока q>0. Определить k-количество вычисленных Z. Вывести на экран a, q, Z, k.

Постановка задачи

Входные данные — а=5 da=-0.5.

Выходные данне – a, q, Z, k.

Цель реализации алгоритма: ввести значение а=5 da=-0.5-константы и при этих значениях вычислить по приведенным фомулам Zи вывести на экран a, q, Z, k.

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

Словесное описание алгоритма:

Начало

1. A = 5, da = -0.5

2. q = a^2 – a

3. пока q > 0 делать

1) z = q + 1/(q+1)

2) увеличиваем К (кол-во вычислений) на 1

3) a = a + da

4) q = a^2 — a

4. выводим на экран a, q, Z, k

Конец

Текст программы

var

k: integer;

  • a,da,z,q: double;
  • sd: array of integer;

begin

a:=5;

  • da:=-0.5;
  • k:=0;
  • q:=sqr(a) — a;
  • while(q > 0) do

begin

z:= q + 1/(q+1);

  • k:= k + 1;
  • a:= a + da;
  • q:=sqr(a) — a;
  • end;
  • writeln(‘a = ‘, a:0:5);
  • writeln(‘q = ‘, q:0:5);
  • writeln(‘Z = ‘, z:0:5);
  • writeln(‘k = ‘, k);
  • readln;
  • end.

Задача 8. Решить в excel.

Название учебного центра Количество неаттестованных учащихся
2001 2002 2003 2004 2005 2006
Softline 14 32 31 26 12 40
Интерком 12 24 32 15 18 20

Найти:

1. Общее число неаттестованных учащихся за каждый год.

2. Среднее число неаттестованных учащихся за каждый год по каждому учебному центру.

3. Учебный центр, в котором наибольшее количество неаттестованных учащихся (за год).

4. Построить гистограмму неаттестации за каждый год.

1 этап: ввод исходных данных в MS Excel.

 система 8

Рисунок 1- Ввод данных

2 этап: вычисления.

При выполнении данного задания используются следующие функции:

1. Математические:

СУММ — сумма аргументов

2. Статистические:

1. СРЗНАЧ — среднее арифметическое аргументов

2. МАКС — максимальное значение из списка аргументов

3. МИН — минимальное значение из списка аргументов

 система 9

Рисунок 2 – Результаты

 система 10

Рисунок 2.1 – Результаты

Этап 3:Построение гистограммы. Выделяем таблицу, выполняем команду Вставка – Гистограмма и выбираем простую гистограмму.

Результат показан на рисунке

 система 11

Рисунок 2.2- Гистограмма

Задание 9. Построить график функции f(x) в Excel.

a)  система 12 ,

b)  система 13

1. Определение функции f (x ).

Для этого в ячейки B2:B19 вводим значение аргумента при помощи автозаполнения, в данном случае с шагом 0,1. В ячейку С3 вводится значение функции, вычисляемое по формуле = 4*B3^3+3*B3^2-8*B3-2/2-3*B3^2. Ячейки С4:С19 заполняются копированием формулы из ячейки С3.

2. Построение графика: выделяем диапазон В2:С19, вызываем «Мастер диаграмм». Для построения графика функции лучше выбрать точечную диаграмму, со значениями, соединенными сглаживающими линиями без маркеров. Чтобы график получился выразительным, можно определить промежуток изменения аргумента, увеличить толщину линий, выделить оси координат, нанести на них соответствующие деления, сделать подписи на осях и вывести заголовок.

 система 14

Рисунок 3 — Построение графика функции  система 15

Аналогично делаем для задания б. Разница только в том, что в одной координатной плоскости будет два графика.

 система 16

Рисунок 3.1 — Построение графика функции  система 17

Список литературы

[Электронный ресурс]//URL: https://liarte.ru/kursovaya/pk-kak-ispolnitel-algoritmov/

1. Б.В. Соболь [и др.] «Информатика и программирование»– Ростов н/Д: Феникс, 2006 – 354 с.

2. Информатика. Базовый курс./С.В. Симонович и др. — СПб.: Питер, 2001

3. Информатика: базовый курс: учебник для студентов вузов, бакалавров, магистров, обучающихся по направлению «Информатика»/О.А. Акулов, Н.В. Медведев. 6-е изд., испр. и доп.-М.: Издательство «Омега-Л», 2009.-574 с. – (Высшее техническое образование).

4. Каймин В.А. Информатика: Учебник для вузов. — М.: Высшее образование, 1998.

5. Каймин В.А., Касаев Б.С. Информатика.: Практикум на ЭВМ. Учебное пособие.

6. Культин Н.Б. Программирование в TurboPascal 7.0 и Delphi.- 2-е издание, перераб. и доп.- Спб.: БХВ-Петербург,2002.-416 с.;ил.

7. Турбо Паскаль 7.0. Самоучитель. – СПб.: Питер; К.: Издательская группа BHV, 2002.-576 с.