Популярные услуги

Все письменные КМ под ключ за 3 суток! (КМ-6 + КМ-7 + КМ-8 + КМ-9 + КМ-10)
КМ-6. Динамические массивы. Семинар - выполню любой вариант!
Любая задача на C/C++
Одно любое задание в mYsql
Повышение уникальности твоей работе
Любой реферат по объектно-ориентированному программированию (ООП)
Любой реферат по информатике
КМ-7. Решение задач на обработку символьной информации - выполню любой вариант!
КМ-2. Разработка простейших консольных программ с использованием ООП + КМ-4. Более сложные элементы ООП - под ключ!
КМ-2. Разработка простейших консольных программ с использованием ООП. Домашнее задание - за 3 суток!

Алгоритмизация 2

2021-03-09СтудИзба

Таблица стандартных функций школьного алгоритмического языка

Название и математическое обозначение функции

Указатель функции

Абсолютная величина (модуль)

| х |

abs(x)

Корень квадратный

sqrt(x)

Рекомендуемые материалы

Натуральный логарифм

ln x

ln(x)

Десятичный логарифм

lg x

lg(x)

Экспонента (степень числа е " 2.72)

ex

exp(x)

Знак числа x (-1,если х<0; 0,если x=0; 1,если x>0)

sign x

sign(x)

Целая часть х (т.е. максимальное целое число,не превосходящее х)

int(x)

Минимум из чисел х и y

min(x,y)

Максимум из чисел х и y

max(x,y)

Частное от деления целого х на целое y

div(x,y)

Остаток от деления целого х на целое y

mod(x,y)

Случайное число в диапазоне от 0 до х-1

rnd(x)

Синус (угол в радианах)

sin x

sin(x)

Косинус (угол в радианах)

cos x

cos(x)

Тангенс (угол в радианах)

tg x

tg(x)

Котангенс (угол в радианах)

ctg x

ctg(x)

Арксинус (главное значение в радианах)

arcsin x

arcsin(x)

Арккосинус (главное значение в радианах)

arccos x

arccos(x)

Арктангенс (главное значение в радианах)

arctg x

arctg(x)

Арккотангенс (главное значение в радианах)

arcctg x

arcctg(x)

sin(3.05)
min(a, 5)

sin(x)
min(a, b)

sin(2*y+t/2)
min(a+b, a*b)

sin((exp(x)+1)**2)
min(min(a,b),min(c,d))

В качестве аргументов функций можно использовать константы, переменные и выражения. Например:

Каждый язык программирования имеет свой набор стандартных функций.

Арифметические выражения записываются по следующим правилам:

  • Нельзя опускать знак умножения между сомножителями и ставить рядом два знака операций.
  • Индексы элементов массивов записываются в квадратных (школьный АЯ, Pascal) или круглых (Basic) скобках.
  • Для обозначения переменных используются буквы латинского алфавита.
  • Операции выполняются в порядке старшинства: сначала вычисление функций, затем возведение в степень, потом умножение и деление и в последнюю очередь — сложение и вычитание.
  • Операции одного старшинства выполняются слева направо. Например, a/b*c соответствует a/b*c. Однако, в школьном АЯ есть одно исключение из этого правила: операции возведения в степень выполняются справа налево. Так, выражение 2**(3**2) в школьном АЯ вычисляется как 2**(3**2) = 512. В языке QBasic аналогичное выражение 2^3^2 вычислясляется как (2^3)^2 = 64. А в языке Pascal вообще не предусмотрена операция возведения в степень, в Pascal x^y записывается как exp(y*ln(x)), а x^y^z как exp(exp(z*ln(y))*ln(x)).

Примеры записи арифметических выражений

Математическая запись

Запись на школьном алгоритмическом языке

x*y/z

x/(y*z) или x/y/z

(a**3+b**3)/(b*c)

(a[i+1]+b[i-1])/(2*x*y)

(-b+sqrt(b*b-4*a*c))/(2*a)

(x<0)

sign(x)*abs(x)**(1/5)

0.49*exp(a*a-b*b)+ln(cos(a*a))**3

x/(1+x*x/(3+(2*x)**3))

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

Примеры записи логических выражений, истинных при выполнении указанных условий.

Условие

Запись на школьном алгоритмическом языке

Дробная часть вещественого числа a равна нулю

int(a) = 0

Целое число a — четное

mod(a,2) = 0

Целое число a — нечетное

mod(a,2) = 1

Целое число k кратно семи

mod(a,7) = 0

Каждое из чисел a,b положительно

(a>0) и (b>0)

Только одно из чисел a,b положительно

((a>0) и (b<=0)) или
((a<=0) и (b>0))

Хотя бы одно из чисел a,b,c является отрицательным

(a<0) или (b<0) или (c<0)

Число x удовлетворяет условию a<x<b

(x>a) и (x<b)

Число x имеет значение в промежутке [1, 3]

(x>=1) и (x<=3)

Целые числа a и b имеют одинаковую четность

((mod(a,2)=0) и (mod(b,2)=0) или
((mod(a,2)=1) и (mod(b,2)=1))

Точка с координатами (x,y) лежит в круге радиуса r с центром в точке (a,b)

(x-a)**2+(y-b)**2<r*r

Уравнение ax^2+bx+c=0 не имеет действительных корней

b*b-4*a*c<0

Точка (x,y) принадлежит первому или третьему квадранту

((x>0) и (y>0)) или
((x<0) и (y>0))

Точка (x,y) принндлежит внешности единичного круга с центром в начале координат или его второй четверти

(x*x+y*y>1) или
((x*x+y*y<=1) и
(x<0) и (y>0))

Целые числа a и b являются взаимнопротивоположными

a = -b

Целые числа a и b являются взаимнообратными

a*b = 1

Число a больше среднего арифметического чисел b,c,d

a>(b+c+d)/3

Число a не меньше среднего геометрического чисел b,c,d

a>=(b+c+d)**(1/3)

Хотя бы одна из логических переменных F1 и F2 имеет значение да

F1 или F2

Обе логические переменые F1 и F2 имеют значение да

F1 и F2

Обе логические переменые F1 и F2 имеют значение нет

не F1 и не F2

Логическая переменная F1 имеет значение да, а логическая переменная F2 имеет значение нет

F1 и не F2

Только одна из логических переменных F1 и F2 имеет значение да

(F1 и не F2) или
(F2 и не F1)

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

  1. Постановка задачи:
    • сбоp инфоpмации о задаче;
    • фоpмулиpовка условия задачи;
    • опpеделение конечных целей pешения задачи;
    • определение формы выдачи результатов;
    • описание данных (их типов, диапазонов величин, структуры и т.п. ).
  2. Анализ и исследование задачи, модели:
    • анализ существующих аналогов;
    • анализ технических и программных средств;
    • pазpаботка математической модели;
    • разработка структур данных.
  3. Разработка алгоритма:
    • выбор метода проектирования алгоритма;
    • выбор формы записи алгоритма (блок-схемы, псевдокод и др.);
    • выбоp тестов и метода тестиpования;
    • проектирование алгоритма.
  4. Пpогpаммиpование:
    • выбор языка программирования;
    • уточнение способов организации данных;
    • запись алгоpитма на выбpанном языке пpогpаммиpования.
  5. Тестиpование и отладка:
    • синтаксическая отладка;
    • отладка семантики и логической стpуктуpы;
    • тестовые pасчеты и анализ pезультатов тестиpования;
    • совершенствование пpогpаммы.
  6. Анализ результатов решения задачи и уточнение в случае необходимости математической модели с повторным выполнением этапов 2 - 5.
  7. Сопровождение программы:
    • доработка программы для решения конкретных задач;
    • составление документации к pешенной задаче, к математической модели, к алгоpитму, к пpогpамме, к набору тестов, к использованию.

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

создавая математическую модель для решения задачи, нужно:

  1. выделить предположения, на которых будет основываться математическая модель;
  2. определить, что считать исходными данными и результатами;
  3. записать математические соотношения, связывающие результаты с исходными данными.

Разработка программы = изготовление + доказательство правильности.

Текст программы можно проконтролировать за столом с помощью просмотра, проверки и прокрутки.

  • Просмотр. Текст программы просматривается на предмет обнаружения описок и расхождений с алгоритмом. Нужно просмотреть организацию всех циклов, чтобы убедиться в правильности операторов, задающих кратности циклов. Полезно посмотреть еще раз условия в условных операторах,аргументы в обращениях к подпрограммам и т.п.
  • Проверка. При проверке программы программист по тексту программы мысленно старается восстановить тот вычислительный процесс, который определяет программа, после чего сверяет его с требуемым процессом. На время проверки нужно "забыть", что должна делать программа , и "узнавать" об этом по ходу её проверки. Только после окончания проверки программы можно "вспомнить" о том, что она должна делать и сравнить реальные действия программы с требуемыми.
  • Прокрутка. Основой прокрутки является имитация программистом за столом выполнения программы на машине. Для выполнения прокрутки приходится задаваться какими-то исходными данными и производить над ними необходимые вычисления. Прокрутка — трудоемкий процесс, поэтому ее следует применять лишь для контроля логически сложных участков программ. Исходные данные должны выбираться такими, чтобы в прокрутку вовлекалось большинство ветвей программы.

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

Тестирование — это испытание, проверка правильности работы программы в целом, либо её составных частей.

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

Программа-отладчик обычно обеспечивает следующие возможности:

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

При отладке программ важно помнить следующее:

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

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

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

тестирование может показать лишь наличие ошибок, но не их отсутствие.

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

Вычислять эталонные результаты нужно обязательно до, а не после получения машинных результатов.

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

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

Процесс тестирования можно разделить на три этапа.

Проверка в нормальных условиях.
Предполагает тестирование на основе данных, которые характерны для реальных условий функционирования программы.

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

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

Вид ошибки

Пример

Неправильная постановка задачи

Правильное решение неверно сформулированной задачи

Неверный алгоритм

Выбор алгоритма, приводящего к неточному или эффективному решению задачи

Ошибка анализа

Неполный учет ситуаций, которые могут возникнуть; логические ошибки

Семантические ошибки

Непонимание порядка выполнения оператора

Синтаксические ошибки

Нарушение правил, определяемых языком программирования

Ошибки при выполнении операций

Слишком большое число, деление на ноль, извлечение квадратного корня из отрицательного числа и т. п.

Ошибки в данных

Неудачное определение возможного диапазона изменения данных

Опечатки

Перепутаны близкие по написанию символы, например, цифра 1 и буквы I, l

Ошибки ввода-вывода

Неверное считывание входных данных, неверное задание форматов данных

Примеры синтаксических ошибок:

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

Существует множество ошибок, которые транслятор выявить не в состоянии, если используемые в программе операторы сформированы верно.

Примеры таких ошибок.

Логические ошибки:

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

Ошибки в циклах:

  • неправильное указание начала цикла;
  • неправильное указание условий окончания цикла;
  • неправильное указание числа повторений цикла;
  • бесконечный цикл.

Ошибки ввода-вывода; ошибки при работе с данными:

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

Ошибки в использовании переменных:

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

Ошибки при работе с массивами:

  • массивы предварительно не обнулены;
  • массивы неправильно описаны;
  • индексы следуют в неправильном порядке.

Ошибки арифметических операций:

  • неверное указание типа переменной (например, целочисленного вместо вещественного);
  • неверное определение порядка действий;
  • деление на нуль;
  • извлечение квадратного корня из отрицательного числа;
  • потеря значащих разрядов числа.

Эти ошибки обнаруживаются с помощью тестирования.

Сопровождение программ — это работы, связанные с обслуживанием программ в процессе их эксплуатации.

Рекомендуем посмотреть лекцию "6 Конфигурирование ИСПС".

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

Программа, предназначенная для длительной эксплуатации, должна иметь соответствующую документацию и инструкцию по её использованию.

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

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

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

Оператор с предусловием можно заменить на оператор с постусловием. Сложнее заменить оператор с параметром на оператор с постусловием.

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5166
Авторов
на СтудИзбе
437
Средний доход
с одного платного файла
Обучение Подробнее