Как составить блок схему программы паскаль
Перейти к содержимому

Как составить блок схему программы паскаль

  • автор:

Урок 4. Блок-схема

Блок-схема

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

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

Блок-схема — графическое представление алгоритма. Она состоит из функциональных блоков, которые выполняют различные назначения (ввод/вывод, начало/конец, вызов функции и т.д.).

Существует несколько основных видов блоков, которые нетрудно запомнить:

Некоторые виды блоков

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

Задача №1: «Рассчитать площадь и периметр прямоугольника по двум известным сторонам».

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

Составим алгоритм решения подобных задач:

1) Прочитать задачу.
2) Выписать известные и неизвестные нам переменные в «дано». (В задаче №1 к известным переменным относятся стороны: a, b ;к неизвестным — площадь S и периметр P)
3) Вспомнить либо составить необходимые формулы. (У нас: S=a*b; P=2*(a+b))
4) Составить блок-схему.
5) Записать решение на языке программирования Pascal.

Запишем условие в более кратком виде.

Структура программы, решающей данную задачу, тоже проста:

  • 1) Описание переменных;
  • 2) Ввод значений сторон прямоугольника;
  • 3) Расчет площади прямоугольника;
  • 4) Расчет периметра прямоугольника;
  • 5) Вывод значений площади и периметра;
  • 6) Конец.

А вот и решение:

Program Rectangle; Var a, b, S, P: integer; Begin write('Введите стороны прямоугольника!'); readln(a, b); S:=a*b; P:=2*(a+b); writeln('Площадь прямоугольника: ', S); write('Периметр прямоугольника: ', P); End.

Задача №2: Скорость первого автомобиля — V1 км/ч, второго – V2 км/ч, расстояние между ними S км. Какое расстояние будет между ними через T часов, если автомобили движутся в разные стороны? Значения V1, V2, T и S задаются с клавиатуры.

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

Дано: V1, V2, S, Т
Найти: S1

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

Формула, используемая для решения нашей задачи, выглядит следующим образом:

Следующий пункт алгоритма – блок-схема:

А также решение, записанное в Pascal :

Program Rasstoyanie; Var V1, V2, S, T, S1: integer; begin write('Введите скорость первого автомобиля: '); readln(V1); write('Введите скорость второго автомобиля: '); readln(V2); write('Введите время: '); readln(T); write('Введите расстояние между автомобилями: '); readln(S); S1:=(V1+V2)*T+S; writeln('Через ', t,'ч. расстояние ', S1,' км.'); End.

Вам может показаться, что две эти программы правильны, но это не так. Ведь сторона треугольника может быть 4.5, а не 4, а скорость машины не обязательно круглое число! А Integer — это только целые числа. Поэтому при попытке написать во второй программе другие числа выскакивает ошибка:

Ошибка!

Чтобы решить эту проблему вам надо вспомнить какой тип в Pascal отвечает за нецелые числа. В этом уроке мы рассматривали основные типы. Итак, это вещественный тип — Real. Вот, как выглядит исправленная программа:

Снимок экрана 2013 12 15 в 20.00.24 1024x545

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

KOKS1999 :
Здесь понятней чем в школе.

мля… прикиньте, я узнал про этот сайт только ПОСЛЕ того как сделал программу с условием, узнавая все в инструкции

Ребята , вопрос на засыпку, как заставить «,» (введенную пользователем в числе) заменить на «.» внутри программы, что бы не вылетало юхни с ошибкой.

AciDWarrioR :

Взять строку введенную пользователем, заменить «,» на «.».
Если совсем гуглить не умеете, то вам сюда — http://www.cyberforum.ru/pascal/thread190664.html

rrrFer rrrFer :

>> скорость машины не обязательно круглое число! Нет такого понятия, как «круглое число». Обе ваши блок-схемы не соответствуют ГОСТу (сдать такие на курсовой проект не получится). ГОСТ определяет блоки начала и конца, как «прямоугольник со скругленными краями», а не «скругленными углами». >> умение правильно и быстро составлять схемы является фундаментом, основой программирования. Большинство программистов так не считает. Кроме того, попробуйте поспрашивать у программистов «когда они последний раз составляли блок-схему?» — окажется что в ВУЗе (когда с них зачем-то сдирали знание ГОСТа). >> так как составление блок-схем не только очень простое и быстрое, но и весьма увлекательное занятие. Очень сложное, долгое и бесполезное занятие. Для хоть сколько-нибудь большой программы (в тысячу строк хотя бы, как курсак) блок-схемы будут огромные и их будут десятки. А что делать если они перестают соответствовать коду? — вот даже в вашей первой задаче надо будет добавить проверку, что юзер не ввел отрицательные значения сторон, что делать? — исправления кода займут 1 минуту, а исправление блок-схем 10 минут, и зачем тогда этим заниматься?

Аноним :

Программист не должен писать блок-схемы (он их должен читать и понимать и при необходимости исправлять). Блок-схемы это графический язык общения, который понимает как программист, так и не программист. Чтобы пользователь не общался с программистом своими «хотелками», типа я хочу, чтобы вот это правильно считалось, и это число складывалось с этим, а потом выводилось сюда (или вообще говорил — хочу что бы работало), а рисовал все в виде блок-схем с четким алгоритмом. Тогда по идее у программиста будет понимание того, что от него хотят (и он через пять минут не забудет все что ему сказали). Либо, когда общаются два программиста пишущих на разных языках программирования (LISP и Java) и одному нужно объяснить как работает его код, что бы другой переписал его на другом языке.
Как объяснить преподавателю как работает программа, если преподаватель не знает языка программирования на котором написана ваша программа? Или как преподавателю объяснить алгоритм задачи студентам пишущим и реализующим этот алгоритм или программу на разных языках программирования? Нужен какой-то универсальный язык общения и обычно это просто текст «что нужно сделать» на русском языке, а не намного облегчающая жизнь программиста блок-схема.
Вам могут сказать — сделай модуль авторизации (ты же знаешь как, ну как всегда и как везде), а могут нарисовать блок-схему модуля авторизации с учетом всех пожеланий, типа того, что пароль должен содержать не менее 6 символов и что нужно делать в противном случае т.д. То есть блок схему должен уметь рисовать тот кто ставит задачу, а не программист. Либо программист (архитектор либо менеджер проекта), который ставит задачу другим программистам.

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

Блок схемы всей программы могут не понадобиться. Это же тонны бумаги и много времени. И да, они устаревают и актуализировать их трудоёмко.
Но при обсуждении новых вариантов решения задачи с другими программистами удобно оперировать блоками с криво-косо нарисованными краями и линиями. Начертил на бумаге или доске и все понятно.
На практике я встречал фотографии доски с блок-схемами, прикреплённые к задачам в Jira.
Не по ГОСТу ��

Программист :
Спасибо, теперь я напишу программу, которая делает код по блок схеме и наоборот

program Logarifm;
Var
X,y,z:real;
function Lgrfm(A,B:Real):Real;
var
Osn:Real;
begin
Osn:=ln(A)/ln(B);
Lgrfm:=Osn;
end;
begin
Write(‘Введите X = ‘);
ReadLn(X);
Write(‘Введите Y = ‘);
ReadLn(Y);
Z:=Lgrfm(X,2)+Lgrfm(Y,3);
WriteLn(‘Z = ‘,Z:10:3);
ReadLn;
end.

Отличный сайт, мне все нравится все понятно и четко, нашел нужные программы.
Василий :

В блок-схемах начало и конец алгоритма обозначаются не прямоугольником со скруглёнными краями, а овалом!

Дмитрий И :

Ребята, что сделали сайт молодцы)) Оч полезная инфа, что нужно поправить, чтобы сайт стал еще лучше:
1) мне не хватает структуры уроков порядковой (или хотябы под уроками чтобы была ссылка на следующий), поэтому приходится на другие уроки искать ссылки по сайту и в контексте уроков;
2)нет описания функций используемых в примерах (по крайней мере, возможно по причине отсутствия структуры, я их не нашел), поэтому беру на сторонних ресурсах описания таких функций как dec() inc() sqr() odd().
А вообще как я понял сайт составлялся школьниками «на коленках», поэтому я не придираюсь, а просто говорю им спасибо за их труд. Желаю успехов.

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

Author24 — интернет-сервис помощи студентам

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

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

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

Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181

Лучший ответ

Сообщение было отмечено Jolyfox3 как решение

Решение

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
const n=20; var x:array[1..n] of real; a,s:real; i,k:integer; begin writeln('Массив Х'); a:=0; for i:=1 to n do begin if i=10 then x[i]:=0 else if i10 then x[i]:=-exp(ln(10-i)/3) else x[i]:=exp(ln(i-10)/3); write(x[i]:7:2); a:=a+x[i]; if i mod 10=0 then writeln; end; a:=a/n; writeln('Среднее арифметическое элементов a=',a:0:2); s:=0; k:=0; for i:=1 to n do if x[i]>a then begin s:=s+x[i]; k:=k+1; end; write('Сумма элементов больших ',a:0:2,'=',s:0:2,' их количество=',k); end.

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Создать блок-схему и программу на языке Pascal для приведенной задачи
Создать блок-схему и программу на языке Pascal для приведенной задачи

Создать блок-схему и программу на языке Pascal для приведенной задачи
Создать блок-схему и программу на языке Pascal для приведенной задачи

Создать блок-схему и программу на языке Pascal для приведенной задачи
Создать блок-схему и программу на языке Pascal для приведенной задачи

Составить блок-схему и написать программу на языке Паскаль для решения следующих задач:
2. Велосипедист массой М кг движется со скоростью V м/с по вогнутому мосту, траектория его движения.

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

Составить структурную блок-схему для решения задачи «игра 2 лисы и 20 кур»
помогите составить структурную блок-схему для решения задачи "игра 2 лисы и 20 кур"

Или воспользуйтесь поиском по форуму:

Написать программу на языке Паскаль по заданной блок-схеме

Написать программу на языке Паскаль по заданной блок-схеме

Написать программу на языке Паскаль по заданной блок-схеме

Определите значение переменной a и b после выполнения фрагмента алгоритма:

Написать программу на языке Паскаль по заданной блок-схеме

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

Таким образом, переменная a = 19, переменная b = 20

Запишем с помощью языка программирования «Паскаль» программу для решения задачи по блок-схеме:

Program block_schema; var a,b:integer; begin a:=25; b:=16; repeat a:= a - 4; b:= b + 2; until a < b; a:=b-1; writeln('a= ',a); writeln('b= ',b); end.

Оператор цикла с постусловием repeat.

В данной программе используется оператор цикла с постусловием repeat.

Repeat — это цикл, в котором условие стоит после тела . Причем оно выполняется тогда и только тогда, когда результат условия false; как только логическое выражение становится true, выполнение цикла прекращается.Между словами REPEAT (повторить) и UNTIL(до тех пор, пока) можно записать любое количество операторов без использования операторных скобок.
В отличие от оператора WHILE вычисление логического выражения происходит не до, а после очередного повторения цикла. Из-за этого цикл REPEAT обязательно выполнится хотя бы раз, а цикл WHILE может не выполнится ни разу. Если условие в цикле ПОКА является условием продолжения повторений, то условие в цикле ДО — условием выхода из цикла, его завершения. Поэтому для одной и той же задачи эти условия противоположны.

Выполняется группа операторов до тех пор, пока не будет выполнено условие a < b.

Как составить блок схему программы паскаль

Регистрация: 25.07.2019

Сообщений: 5

Построение блок схем из кода программы.

Подскажите плиз какую программу лучше юзать для преобразования кода в блок схему. Ток не сильно мудреную, чтоб код вставил а она тебе схему. Типа Avtoshema. Чтоб вот эту прогу могла расшифровать.

type natural=0..maxint; var n,m,k,kol:integer; function sumdig(a:natural):natural; var m1,b:natural; begin m1:=0; repeat b:=a mod 10; m1:=m1+b; a:=a div 10; sumdig:=m1; until a=0; end; begin repeat write('Введите число N='); readln(n); write('Введите число M='); readln(m); kol:=0; for k:=1 to n-1 do if sumdig(k)=sumdig(m) then begin kol:=kol+1; write(k); writeln; end; write('Количество =',kol); writeln; until false; end.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *