Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 2 [3]  Все   Вниз
  Печать  
Автор Тема: Научите меня писать словесные алгоритмы программ и блок-схему  (Прочитано 117238 раз)
0 Пользователей и 5 Гостей смотрят эту тему.
Diskriptor
Опытный

ua
Offline Offline
Пол: Мужской

« Ответ #60 : 03-01-2008 18:41 » 

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

Единственный способ, научится программировать на каком либо языке программирования, это писать на этом языке программы.
Diskriptor
Опытный

ua
Offline Offline
Пол: Мужской

« Ответ #61 : 22-01-2008 02:42 » 

Здравствуйте, я так и не могу программировать тесть синтаксис знаю, операторы, а программу написать не могу. Я не смотря на все советы которые мне давали, я их не применял, ну тоесть как я хотел их применять но когда садился за программу то получалось как, я думал что разработка алгоритма займет много времени и я не успею заделать домику и садился топтать клавиатуру в итоги я сейчас не могу зделать никакой домашки по программированию и завалил экзамен по фотошопу и я понял если я сейчас не возмуся за развитие алгоритмического мышления в серез то я не когда не стану админом с хорошим знанием программирования или программистом и я понял что надо заделать.
1.отринуть все знание программирования и начать заново как посоветовала Люсь
Цитата
лучше б начать с теорий информатики, с азов, со словесного...
и привет мир вот , распичатою вот это


Это уроки по АЛГОРИТМИЗАЦИИ
http://www.pripit.perm.ru/oz/Algor/algoritmika-lesson1.htm
http://www.pripit.perm.ru/oz/Algor/algoritmika-lesson2.htm
http://www.pripit.perm.ru/oz/Algor/algoritmika-lesson3.htm
http://www.pripit.perm.ru/oz/Algor/algoritmika-lesson4.htm
http://www.pripit.perm.ru/oz/Algor/algoritmika-lesson5.htm
http://www.pripit.perm.ru/oz/Algor/algoritmika-lesson6.htm
http://www.pripit.perm.ru/oz/Algor/algoritmika-lesson7.htm

2.Забю на домашки по программированию в шаге, ну тоест как на пары ходит буду а домашки делать не буду, чтобы ни критиковали обедню почему я так поступаю это я делаю для того чтобы они на меня не довили что бы я не топтал попусту клавиши пока не выробатую у себя алгоритмическое мышление, я заделаю как посоветовал dimka
Цитата
И только когда ты на небольших примерах научишься писать "правильно", только потом ты сможешь писать "много".
А для этого куплю книгу вот еще не решил какую из двух, Экеля или Лидмана посоветуйте какая лучше для выработки алгоритмического мышления + уроки по алгоритмизации+блок-схема= алгоритмическое мышление я по заварки чая понел как надо составлть алгоритм.
Советы по развитию алгоритмического мышлению и вспомогательной литературе пишите суда буду очень благодарен.
Записан

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

ru
Offline Offline
Пол: Женский

« Ответ #62 : 22-01-2008 04:47 » 

Diskriptor, смешно ты пишешь - книги, вырабатывающие алгоритмическое мышление Улыбаюсь)
Книги тебе только предоставляют информацию, поэтому надо брать такую, которая тебе в данный момент наиболее понятна. А уж вырабатываешь всё, что ты хочешь, только ты сам своим трудом и упорством Улыбаюсь

По поводу ссылок: тебе самому понятно, что там написано? Дерзай!
По поводу книг не могу ничё сказать, такого не читала.
Записан

Посторонним просьба не беспокоить!
-------------------------------------------------
O (I) Rh +
Diskriptor
Опытный

ua
Offline Offline
Пол: Мужской

« Ответ #63 : 22-01-2008 13:12 » 

Люсь, Спасибо упорства у меня много, а насчет алгоритмов это тяжело объяснит, что это такое это я в себе сам осовременим, заметет должен, а насчет книг пусть скажут, кто читал в какой лучше подойдет для этого, что написано по ссылки понимаю что там написано(но первая тема до конца тяжело даетсч) ну не чего и саней разберусь
« Последнее редактирование: 22-01-2008 13:19 от Diskriptor » Записан

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

ru
Offline Offline
Пол: Мужской

« Ответ #64 : 22-01-2008 18:19 » 

Diskriptor, можно начать со старого школьного учебника по "Основам информатики и вычислительной техники" для старших классов. К сожалению, он у меня есть лишь в бумажном виде ("Основы информатики и вычислительной техники": Проб. учеб. для 10-11 кл. сред. шк./А. Г. Гейн, В. Г. Житомирский, Е. В. Линецкий и др. - М.: Просвещение, 1991 - 254 с.: ил.). Есть и поновее: где-то 1995 года, но у меня такого нет. Рекомендован министерством образования РСФСР, и в педагогическом и учебно-методическом смысле этот учебник выверен - учиться по нему можно; вопрос только, чему, ибо с 1991 года уже много воды утекло.

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

Итак, параграф 2 "Этапы решения задач с помощью ЭВМ"

Цитата
Пусть вам надо решить какую-нибудь задачу, и вы хотите воспользоваться услугами ЭВМ. С чего начать? Прежде всего, нужно разобраться, что дано, что требуется получить, как связаны исходные данные и результаты. Иначе говоря, задача должна быть чётко сформулирована. Такое требованием вам может показаться странным: ведь обычно из формулировки школьной задачи можно однозначно извлечь, что дано, что требуется получить и как связаны исходные данные с результатом (хотя, быть может, не всегда просто это сделать). Однако жизнь постоянно заставляет решать задачи посложнее, чем в школьных учебниках. За примерами далеко ходить не надо.

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

Далее ещё один пример про расписание уроков в школе - пропущу.

Цитата
Этих двух примеров, наверно, достаточно, чтобы понять: постановка задачи - важная часть (иногда говорят - половина) её решения. Чётко сформулировать задачу - это значит высказать те предположения, которые позволят в море информации об изучаемом явлении или объекте выудить исходные данные, определить, что будет служить результатом, и какова связь между исходными данными и результатом. Всё это: предположения, исходные данные, результаты и связи между ними - называют моделью задачи.

Искусство составления моделей как раз и заключается в том, чтобы, не переусложнив модель, учесть в ней всё существенное и отбросить второстепенное. Не в этом ли состоит искусство вообще? Ведь, пожалуй, каждый вид искусства, будь то живопись, скульптура или театр, - это создание моделей жизненных явлений с использованием присущих ему выразительных средств.

Составить хорошую модель задачи - дело непростое. Даже если решать эту задачу предстоит вам самим. А если модель надо будет объяснить компьютеру? В этом случае придётся учитывать "способности" ЭВМ. Если, скажем, ЭВМ "умеет" только вычислять, то, высказывая предположения, нужно позаботиться о том, чтобы исходные данные и результаты были числами, а связи между ними - математическими соотношениями. Выполнив такой "перевод" задачи на язык математики, вы получите модель, которую обычно называют математической моделью.

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

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

Предположив, что поверхность стола - прямоугольник, мы легко можем указать те данные, которые будут исходными, а также то, что требуется получить (результаты). Ясно, что исходные данные - длины сторон (скажем, a и b), результат - площадь (скажем S). Они связаны соотношением S = ab. Важно отметить, что сделанные предположения позволили "перевести" нашу задачу на язык чисел: и исходные данные, и результат - числа, а соотношение между ними задаётся математической формулой.

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

1) выделить предположения, на которых будет основана математическая модель;

2) определить, что считать исходными данными и результатами:

3) записать математические соотношения (формулы, уравнения, неравенства и так далее), связывающие результаты с исходными данными.

Эти соотношения, конечно, не всегда выражают результат, как функцию от исходных данных - в примере со столом нам просто повезло: зная a и b, ничего не стоит подсчитать S.

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

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

Далее опять пропускаю пример про полёт Чкалова.

Цитата
Созданием математической модели завершается первый этап решения задачи с помощью ЭВМ. Для того, чтобы ЭВМ произвела необходимые вычисления и получила ответ, нужно составить для неё чёткую инструкцию, строго указать необходимую последовательность действий. Такая инструкция называется алгоритмом решения задачи. Составление алгоритма - второй этап решения задач с помощью ЭВМ...

ЭВМ могут выполнять алгоритмы без участия человека, автоматически. Но для этого алгоритм должен быть записан в "понятной" для машины форме, т.е. на специальном языке, который называется языком программирования. Алгоритм, записанный на языке программирования, называется программой...

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

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

При этом может возникнуть необходимость уточнить математическую модель, поскольку выяснится, что при её разработке не были учтены какие-либо существенные свойства объекта... Уточнив модель, исправляют алгоритмы, проводят расчёты на ЭВМ и анализируют результаты. И опять может потребоваться уточнение модели... Так будет продолжаться до тех пор, пока анализ результатов не покажет их приемлемое соответствие знаниям об изучаемом объекте.

Таким образом, в третий этап решения задачи с помощью ЭВМ, помимо написания программы, входит проведение расчётов на ЭВМ и анализ результатов - вычислительный эксперимент. Теперь мы можем изобразить общую схему решения задачи с помощью ЭВМ. Вот как она выглядит:
Код:
Реальная -> Математическая -> Алгоритм -> Программа -> Вычислительный
задача      модель                                     эксперимент
                  ^                                         |
                  +-----------------------------------------+

Задачи для самостоятельной работы

Цитата
1. В комнате, имеющей двери и окна, будет проведён ремонт. Для расчёта потребностей в строительных материалах сделаны следующие предположения:
- пол, потолок, стены  и окна имеют форму прямоугольников;
- дверь имеет форму прямоугольного параллелепипеда;
- батареи центрального отопления, расположенные под окнами, имеют прямоугольную форму.
Выберите из этих предположений те, которые существенны для решения каждой из следующих задач:
а) рассчитать количество мела, необходимое для побелки стен и потолка комнаты;
б) рассчитать количество краски для покраски пола;
в) рассчитать количество обоев для оклейки стен;
г) рассчитать количество древесины, необходимое для изготовления двери.

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

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

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

5. Завершите построение математических моделей, начатое при решении задач 1 и 4.

6. Выскажите предположения, существенные для решения следующей задачи. Определите, что будет служить исходными данными, а что - результатом.
Во время ремонта корабля потребовалось заделать пробоину в обшивке. Имеется лист стали. Удастся ли с его помощью заделать пробоину?

7. Через иллюминатор затонувшего корабля требуется вытащить сундук с драгоценностями. Удастся ли это сделать? Составьте математическую модель для решения этой задачи.

Пока так, потом продолжу Улыбаюсь
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #65 : 22-01-2008 20:11 » 

dimka, к сожалению Diskriptor такого учебника не найдет, думаю их в Украине, днем с огнем искать надо. но наверное, есть и украинские аналоги. Хотя ... если это год выпуска 1991, то возможно где-нибудь наткнуться на библиотечный экземпляр.

но уроки можно продолжить Улыбаюсь
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #66 : 23-01-2008 18:04 » new

Параграф 3 "Пример математической модели"

Цитата
Задача. Тело движется прямолинейно с ускорением a м/с^2 и начальной скоростью v м/с. Требуется определить, какой путь пройдёт тело за T секунд.

Вы знаете ответ к этой задаче:

S = v*T + (a*T^2)/2   (1)

Приведённое соотношение неоднократно проверялось в различных физических экспериментах, в том числе в лабораторных работах по физике. Но, как вы хорошо знаете, всякий физический эксперимент обязательно содержит ошибки измерений. Поэтому совершенно точно формулу (1) проверить экспериментально невозможно. А чтобы вывести её теоретически, на уроках физики, по сути дела, строилась приближённая математическая модель равноускоренного движения (хотя слово "модель", конечно, не употреблялось). Нетрудно убедиться в том, что эта модель основана на следующем допущении (см. учебник физики для 9-го класса):

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

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

Цитата
Руководствуясь схемой, описанной в предыдущем параграфе, определим, что считать исходными данными и результатами нашей модели. Ясно, что исходными данными являются начальная скорость v, ускорение a, время движения T. Результатом, конечно, будет перемещение S.

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

Разобьём интервал времени от 0 до T секунд на N равных частей. Величина каждой части составляет r = T/N секунд. По нашему предположению скорость тела в течение каждого из этих промежутков времени считается постоянной. В течение первых r секунд тело движется с начальной скоростью v(1) = v м/с. На следующем отрезке (от r до 2r секунд) - со скоростью v(2) = v(1) + a*r м/с. В течение третьего промежутка времени скорость будет равна v(3) = v(2) + a*r м/с. Как видите, последовательность v(1), v(2), ... является арифметической прогрессией с первым членом v и разностью d = a*r. Найдём путь, пройденный телом:

S = v(1)*r + v(2)*r + v(3)*r + ... + v(n)*r = (v(1) + v(2) + v(3) + ... + v(n)) * r

Воспользуемся формулой для суммы N членов арифметической прогрессии:

S = ((2*v + d*(N - 1)) * N/2) * r = ((2*v + a*r*(N - 1)) * N/2) * r

Раскрывая скобки и подставляя T/N вместо r, получим:

S = (2*v*N*T + a*(T^2)*(N - 1)) / (2*N) = v*T + a*(T^2)*(N - 1) / (2*N) = (v*T + (a*T^2)/2) - ((a*T^2)/(2*N))

Эта формула и является математическим соотношением, связывающим исходные данные и результат. Построение математической модели закончено. Вы видите, что полученная формула для S отличается от формулы (1) слагаемым - (a*T^2)/(2*N), которое показывает, с какой степенью точности построенная модель описывает равноускоренное движение.

Задания для самостоятельной работы

Цитата
1. Завершите составление математической модели, начатое при решении задачи 6 к предыдущему параграфу.

2. Выполняя утреннюю зарядку, школьник подошёл к стене, на которой был закреплён пружинный эспандер, и оттянул его на некоторое расстояние. Какую работу совершила при этом сила натяжения пружины?
При построении математической модели для этой задачи были сделаны следующие предположения: сила натяжения пружины подчинена закону Гука; если весь промежуток движения тела разбить на большое число равных маленьких промежутков, то можно считать, что сила на каждом из них постоянна и меняется "мгновенно" в конце каждого промежутка; при неограниченном увеличении числа этих промежутков величина работы получается с любой точностью.
Завершите построение математической модели.

3. Составьте математическую модель для решения следующей задачи.
Плотина прямоугольной формы перегораживает реку. Высота воды по разные стороны от плотины различна. Определите силу давления воды на плотину.

4. Школьник, не знающий теоремы Пифагора, составил следующую математическую модель для определения длины диагонали произвольного прямоугольного стола.
Предположение: поверхность стола считаем прямоугольником; длина диагонали приближённо равна ломаной (лесенке, состоящей из отрезков, параллельных сторонам), если, конечно, ступени у этой ломаной достаточно маленькие; при неограниченном увеличении числа ступенек величина диагонали получается с любой точностью.
Исходные данные: длины сторон стола a и b.
Результат: длина диагонали d.
Связь между исходными данными и результатом: d = a + b (действительно, длина ломаной в точности равна a + b независимо от того, сколько в ней ступенек).
Почему получился неверный результат: диагональ прямоугольника равна сумме его смежных сторон?
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Diskriptor
Опытный

ua
Offline Offline
Пол: Мужской

« Ответ #67 : 23-01-2008 22:35 » 

dimka, Спасибо тебе за уроки распечатаю, прочитаю потом напишу, что разобрался и можно идти дальше еще раз БОЛШОЕ СПАСИБО!
Записан

Единственный способ, научится программировать на каком либо языке программирования, это писать на этом языке программы.
Diskriptor
Опытный

ua
Offline Offline
Пол: Мужской

« Ответ #68 : 24-01-2008 00:42 » 

dimkaКласс! Показываю язык Показываю язык Показываю язык Я ужас, летящий на крыльях ночи
Записан

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

ru
Offline Offline
Пол: Мужской

« Ответ #69 : 24-01-2008 21:59 » 

Цитата
Когда математическая модель построена, надо приступать к следующему этапу решения задачи на ЭВМ - составлению алгоритма. Что такое алгоритмы, какими общими свойствами они обладают и как они исполняются - обо всём этом рассказывается в данной главе.

Параграф 4 "Понятие алгоритма"

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

Код:
Достать ключ.
Вставить ключ в замочную скважину.
Повернуть ключ 2 раза против часовой стрелки.
Вынуть ключ.

А теперь представьте себе, что вас пригласили в гости. Наверняка вы попросите подробно и точно объяснить, как добраться. Вот как может выглядеть объяснение:

Код:
Выйти из дома.
Повернуть направо.
Пройти 2 квартала до автобусной остановки.
Сесть в автобус № 25, идущий к центру города.
Проехать 3 остановки.
Выйти из автобуса.

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

Код:
Достать ключ.
Повернуть ключ 2 раза против часовой стрелки.
Вставить ключ в замочную скважину.
Вынуть ключ.

Вы, конечно, сможете выполнить и этот алгоритм. Но дверь вряд ли откроется. А что произойдёт, если поменять местами четвёртое и пятое действие во втором алгоритме? Он станет невыполнимым! Итак, мы убедились, что для алгоритма важен не только набор действий, но и то, как они организованы, т.е. в каком порядке выполняются.

Мы можем теперь сказать, что алгоритм - это организованная последовательность действий. Эту формулировку, конечно, нельзя считать определением алгоритма. Например, мы не объяснили, что означают слова "организованная" и "действия". Скажем сразу - абсолютно строгого определения алгоритма мы не дадим. Понятие алгоритма в информатике является фундаментальным. Таким же, какими являются понятия точки, прямой и плоскости в геометрии, пространства и времени в физике, вещества в химии и т.д. Поэтому мы не будем стремиться дать всеобъемлющее определение алгоритма, а будем уточнять смысл этого понятия в последующих параграфах.

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

Вопросы

Цитата
1) Почему нельзя дать строгое определение алгоритма?
2) Какое общее свойство алгоритмов вы можете назвать?

Задания для самостоятельной работы

Цитата
1. Приведите примеры неопределяемых понятий в следующих школьных предметах:
а) литература;
б) русский язык;
в) история;
г) биология.

2. Некий злоумышленник выдал следующий алгоритм за алгоритм получения кипятка:
Код:
Налить в чайник воду.
Открыть кран газовой горелки.
Поставить чайник на плиту.
Ждать, пока вода не закипит.
Поднести спичку к горелке.
Зажечь спичку.
Выключить газ.
Исправьте алгоритм, чтобы предотвратить несчастный случай.

3. Имеются цинк, 96%-ная серная кислота, вода, а также колба и пробирка. Исправьте ошибки в алгоритме получения водорода:
Код:
Поставить колбу на стол.
Налить в колбу кислоту.
Налить в колбу воду.
Собрать выделяющийся газ в пробирку.
Бросить в колбу цинк.

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

5. Пусть дан отрезок AB. Опрделить, для решения какой задачи предназначен следующий алгоритм:
Код:
Поставить ножку циркуля в точку A.
Установить раствор циркуля равным длине отрезка AB.
Провести окружность.
Поставить ножку циркуля в точку B.
Провести окружность.
Провести прямую через точки пересечения окружностей.

6. Пусть даны действительные числа b, q, и натуральное число n. Какая задача решается с помощью следующего алгоритма?
Код:
Вычислить q^n и обозначить результат буквой C.
Вычислить 1 - C и обозначить результат буквой D.
Вычислить 1 - q и обозначить результат буквой E.
Разделить D на E и обозначить результат буквой F.
Умножить F на b и обозначить результат буквой S.
Сообщить S.

7. Дана фраза на английском языке: "Mike goes to school". Составьте алгоритм перехода от утвердительной формы к вопросительной: "Does Mike go to school?"

8. Составьте алгоритм построения биссектрисы угла с помощью циркуля и линейки.

9. Даны число x и набор действий: разделить полученное число на 3; умножить x на 2; сообщить результат; прибавить к полученному числу 4; вычесть из полученного числа 7.
Составьте из этих действий два различных алгоритма. Любой ли алгоритм, составленный из этих действий, можно выполнить? Укажите две различные функции от x, значения которых вычисляются с помощью алгоритмов, использующих указанные действия.

10. Имеются два кувшина с ёмкостью 3 л и 8 л. Напишите алгоритм, выполняя который можно набрать из реки 7 л воды (разрешается пользоваться только этими кувшинами).

11. (Старинная задача.) Некий человек должен перевезти в лодке через реку волка, козу и капусту. Каждый раз он может перевезти только либо волка, либо козу, либо капусту. На одном берегу нельзя оставить вместе козу и волка, а также козу и капусту. Составьте алгоритм переправы на другой берег. (Эта задача встречается в рукописях VIII века. Уже тогда интересовались алгоритмами!)

12. Разведывательный дозор в составе двух человек подошёл к реке. Мост был разрушен, а река слишком глубока и широка, чтобы переправиться через неё вброд или вплавь. К счастью, около берега в маленькой лодке проплывали два мальчика. Как переправиться на этой лодке через реку, если она может выдержать только либо одного взрослого, либо двух мальчиков?

13. На полустанке одноколейной железной дороги остановился поезд в составе тепловоза и пяти вагонов, доставивший бригаду рабочих для строительства новой ветки. Пока на этом полустанке имеется только небольшой тупик, в котором в случае необходимости может поместиться тепловоз с двумя вагонами или три вагона. Вскоре следом за поездом со строительной бригадой к этому же полустанку подошёл пассажирский поезд. Составьте алгоритм, позволяющий пропустить пассажирский поезд.

Содержание задач: во-первых, декларирует информатику, как универсальную "сервисную" дисциплину, сочетаемую с любыми другими; во-вторых, требует помнить кое-что, чему учили в школе. Кроме того, некоторые задачи нетривиальны.
« Последнее редактирование: 24-01-2008 22:03 от dimka » Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #70 : 25-01-2008 18:26 » 

Параграф 5 "Исполнители алгоритмов"

Цитата
В предыдущем параграфе мы составили несколько алгоритмов и каждый раз предполагали, что исполнять наши алгоритмы будет человек. При этом оказалось, что не все они выполнимы. К счастью, человек далеко не единственный исполнитель алгоритмов. Роботы-манипуляторы и станки с программным управлением, живая клетка и даже животные в цирке исполняют различные алгоритмы, в том числе и те алгоритмы, которые человек выполнить не в силах. Например, алгоритм из задачи 4 из предыдущего параграфа человек исполнить не сможет, но его легко выполнит робот-"подводник". Значит, выполнимость алгоритма зависит от того, какие действия может совершать исполнитель.

Что же такое исполнитель? Упрощённо исполнителя можно представить себе как некоторое устройство управления, соединённое с набором инструментов. Устройство управления понимает алгоритмы и организует их выполнение, командуя соответствующими инструментами. А инструменты производят действия, выполняя команды управляющего устройства. Скажем, если человека рассматривать, как исполнителя алгоритмов, то мозг - его управляющее устройство, а инструменты - руки, ноги, глаза, нос, рот, уши... (продолжите список самостоятельно). У роботов-манипуляторов, станков с программным управлением и ЭВМ управляющее устройство - процессор; что же касается набора инструментов, то он зависит от того, для решения каких задач предназначен тот или иной исполнитель.

Ясно, что как бы ни были разнообразны возможности исполнителя, они всегда ограничены. Иначе для решения любой задачи годился бы один-единственный алгоритм:

Код:
Получить исходные данные.
Найти решение.
Сообщить ответ.

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

Поясним сказанное на примере. Допустим, требуется решить уравнение x^2 - 9*x + 8 = 0. Ученик десятого класса, который хорошо знает, как решать квадратные уравнения, не нуждается в объяснениях. Для него алгоритм решения будет состоять из двух действий:

Код:
Решить уравнение.
Сообщить результат.

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

Код:
Вычислить значение выражения 9^2-4*8 (дискриминант уравнения).
Извлечь из полученного числа квадратный корень и обозначить результат буквой p.
Вычислить значение выражения (9+p)/2 и обозначить результат буквой y.
Вычислить значение выражения (9-p)/2 и обозначить результат буквой z.
Сообщить числа y и z.

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

Как правило, набор допустимых действий (т.е. действий, которыми можно пользоваться при решении задачи) в явной или неявной форме указывается в формулировке задачи. Например, в школьных задачах на построение обычно подразумевается, что можно пользоваться только циркулем и линейкой. А иногда ставится задача на построение только циркулем или только линейкой. Таким образом, можно сделать вывод, что различные классы задач требуют различных наборов допустимых действий. Поэтому, чтобы для решения того или иного класса задач можно было применить ЭВМ, необходимо "научить" ЭВМ имитировать нужный набор допустимых действий (можно назвать это имитацией исполнителя с помощью ЭВМ).

Далее по тексту в разных местах идёт описание вспомогательных учебных средств: "Вычислитель", "Чертёжник" и "Робот-манипулятор" - я это пропускаю.

Пока будем считать, что "Вычислитель" обладает тремя допустимыми действиями:

Код:
ЗАПРОСИТЬ <переменная1>[, <переменая2>[, ...[, <переменнаяN>]...]]

СООБЩИТЬ {<переменная1>[, <переменая2>[, ...[, <переменнаяN>]...]]|<строка>}

ПРИСВОИТЬ <переменная> ЗНАЧЕНИЕ <математическое выражение>

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

Далее разбирается понятие переменной (на примере ящиков и лежащих в них табличек) и, в частности, выражения вида
Код:
ПРИСВОИТЬ A ЗНАЧЕНИЕ (A+B)/2
Отличие присваивания от математического равенства. Это я пропускаю. Если надо, потом воспроизведу.

Цитата
Итак, для решения задачи надо выбрать исполнителя и лишь затем составлять алгоритм решения, используя только допустимые действия этого исполнителя. А что требуется от исполнителя составленного нами алгоритма? Только чёткое выполнение каждого действия, входящего в алгоритм. Ему не надо знать, для каких целей предназначается алгоритм (компьютеру "безразлично", управляет он доменным процессом или предсказывает погоду на завтра).

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

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

Один и тот же исполнитель может быть сымитирован на ЭВМ многими способами. При этом содержание действий остаётся неизменным, а их названия могут быть разными. Так, при имитации "Вычислителя" средствами языка Бейсик вместо слов ЗАПРОСИТЬ и СООБЩИТЬ используются английские слова INPUT и PRINT.

Вопросы

Цитата
1) Что такое исполнитель алгоритмов?
2) Что такое допустимые действия исполнителя?
3) Какие действия допустимы для "Вычислителя"?
4) Что означают для "Вычислителя" следующие команды?
а)
Код:
ЗАПРОСИТЬ A, B, C
б)
Код:
СООБЩИТЬ "Спасибо!"
в)
Код:
СООБЩИТЬ A+B
г)
Код:
ПРИСВОИТЬ A ЗНАЧЕНИЕ X+Y-Z
5) Что значит сымитировать исполнителя с помощью ЭВМ?

Задачи для самостоятельной работы

Цитата
1. Исполнитель умеет:
- умножать число на 2;
- увеличивать число на 1.
а) Составьте для этого исполнителя алгоритм получения числа 100 из единицы.
б) Сколько действий в самом коротком из таких алгоритмов?

2. Исполнитель умеет из любой дроби a/b получать любую из дробей (a-b)/b, (a+b)/b и b/a. Как получить из дроби 1/2 дробь 1/4? А как получить 67/91?
Третью задачу на геометрию пропускаю.
Цитата
4. На столе лежат две двухкопеечные монеты и три пятака так, как показано ниже:
Код:
(5)_(2)_(5)_(2)_(5)
Исполнитель может одновременно перемещать две соседние монеты либо в начало или конец цепочки, либо на освободившееся в результате таких перемещений место в середине цепочки. Например, перенеся вторую и третью монеты к правому концу цепочки, он получит такое расположение монет:
Код:
(5)_________(2)_(5)_(2)_(5)
При этом исполнитель не может раздвигать монеты или менять их местами. Составьте для этого исполнителя алгоритм преобразования исходной цепочки монет в следующую цепочку монет:
Код:
(5)_(5)_(5)_(2)_(2)

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

6. Исполнитель умеет заменять в слове одну букву на другую так, чтобы получившееся слово имело смысл. Например
Код:
СЛОН -> СЛОГ
Напишите алгоритм превращения "МУХИ" в "СЛОНА".

7. Какие задачи решит "Вычислитель", выполнив следующие алгоритмы
а)
Код:
ЗАПРОСИТЬ A, D, N
ПРИСВОИТЬ S ЗНАЧЕНИЕ (A+D*(N-1))*N/2
СООБЩИТЬ S
б)
Код:
ЗАПРОСИТЬ B, Q, N
ПРИСВОИТЬ S ЗНАЧЕНИЕ B*(Q^N-1)/(Q-1)
СООБЩИТЬ S

8. Злоумышленник поменял местами действия в алгоритме вычисления среднего арифметического из квадратов трёх чисел, предназначенном для "Вычислителя":
Код:
ПРИСВОИТЬ A ЗНАЧЕНИЕ (A^2+B^2+C^2)/3
ЗАПРОСИТЬ A, B, C
СООБЩИТЬ "Среднее арифметическое квадратов равно"
СООБЩИТЬ A
Восстановите правильный порядок действий.

9. Исправьте следующий алгоритм решения уравнения x^2-2*x-14=0, предназначенный для "Вычислителя":
Код:
ПРИСВОИТЬ D ЗНАЧЕНИЕ 2^2+4*14
ПРИСВОИТЬ P ЗНАЧЕНИЕ КОРЕНЬ(D)
ПРИСВОИТЬ X ЗНАЧЕНИЕ (2+-p)/2
СООБЩИТЬ "Корни уравнения равны"
СООБЩИТЬ первое значение X
СООБЩИТЬ второе значение X
Под +- здесь понимается плюс-минус (2 возможных действия).
Цитата
10. Автомобиль проехал три участка пути разной длины с разными скоростями. Составьте для "Вычислителя" алгоритм нахождения средней скорости автомобиля.

11. Даны длины сторон треугольника.
а) Составьте для "Вычислителя" алгоритм, выполняя который он сначала вычислит (используя действие ПРИСВОИТЬ), а затем сообщит полупериметр треугольника, его площадь и радиус вписанной окружности.
б) Составьте алгоритм решения той же задачи, в котором используются только четыре переменные.
в) Составьте алгоритм решения той же задачи, в котором используются только три переменные.

12. Какими допустимыми действиями вы снабдили бы исполнителя, который будет производить построения с помощью циркуля и линейки?
« Последнее редактирование: 25-01-2008 18:28 от dimka » Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #71 : 26-01-2008 19:47 » 

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

Заодно решить предложенные задачи и ответить на заданные вопросы по изложенному материалу.

Diskriptor, ждём-с.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Diskriptor
Опытный

ua
Offline Offline
Пол: Мужской

« Ответ #72 : 24-04-2008 23:00 » 

Это еще не все по первой Задачам для самостоятельной проверки
Задача для самостоятельной проверки
Задание №1
В комнате, имеющей двери и окна, будет проведён ремонт. Для расчёта потребностей в строительных материалах сделаны следующие предположения:
- пол, потолок, стены  и окна имеют форму прямоугольников;
- дверь имеет форму прямоугольного параллелепипеда;
- батареи центрального отопления, расположенные под окнами, имеют прямоугольную форму.

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


Задача
а) рассчитать количество мела, необходимое для побелки стен и потолка комнаты;
Правленый варианты

1. пол, потолок, стены и окна имеют форму прямоугольников;
2. - батареи центрального отопления, расположенные под окнами, имеют прямоугольную форму;

Задача
б) рассчитать количество краски для покраски пола;
Предположение
1. пол, потолок, стены и окна имеют форму прямоугольников;


Задача
в) рассчитать количество обоев для оклейки стен;

Предположение
1. пол, потолок, стены  и окна имеют форму прямоугольников;
2. - батареи центрального отопления, расположенные под окнами, имеют

Задача
г) рассчитать количество древесины, необходимое для изготовления двери.
Предположение
1. дверь имеет форму прямоугольного параллелепипеда;

Задание №2
2. Выскажите предположения, существенные для решения следующей задачи.
Участок цеха по производству туристского снаряжения выпускает брезентовые палатки. Требуется определить количество брезента, нужное для выполнения участком месячного плана.
1.)   В цехи есть N количество станков
2.)   Эти станки работают с N количество произвадителносьтя в сутки

Задание №3
По заказу Управления культуры была изготовлена бронзовая статуя девушки с веслом.
Определите те свойства статуи, которые существенны для решения каждой из следующих задач:
Задача
а) перевезти статую из мастерской в городской парк;
Свойства
1.Длина
2 Вес

Задача
б) установить статую на площадке парка;
Свойства
1. Вес
2. Диаметр

Задача
в) увеличить посещаемость городского парка;
Свойства
1.) не стандартный дизайн статуи

Задача
г) продать статую с аукциона;
Свойства
1.Материпл из которого она изготовлена
2.Историческое значение
Задача

д) переплавить статую.

Свойства
1.Материпл из которого она изготовлена
2. Вес

Задание №4

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


а) рассчитать количество мела, необходимое для побелки стен и потолка комнаты;


Исходные данные

1.   Стены и потолок имеют форму прямоугольника
2.   Имеются батареи под подаконикам

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


Задача
б) рассчитать количество краски для покраски пола;
надо замерить длину А и ширину В а потом А* В
Записан

Единственный способ, научится программировать на каком либо языке программирования, это писать на этом языке программы.
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #73 : 25-04-2008 04:14 » 

Diskriptor, и чЁ?
Записан

Странно всё это....
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #74 : 25-04-2008 05:32 » 

Например это (и остальные):
Цитата: Diskriptor
б) рассчитать количество краски для покраски пола;
Предположение
1. пол, потолок, стены и окна имеют форму прямоугольников;
странно. Это же не тест, где галочки надо ставить. В частности, здесь какое отношение имеют стены и окна к покраске пола?

Цитата: Diskriptor
1.)   В цехи есть N количество станков
2.)   Эти станки работают с N количество произвадителносьтя в сутки
А почему количество станков равно количеству выпускаемой продукции в сутки? В условии сказано, что это за продукция, тем не менее никаких ответов, учитывающих эту информацию нет. Мало. Ещё раз: это не тест, это задачи на "подумать".

Цитата: Diskriptor
Для того чтобы узнать, сколько надо мела для побелки стен, надо, узнать площадь стен, поскольку мы знаем, что стены имеет форму прямоугольника то, надо замерить длину А и ширину В и А*В и умножить на количество всех стен которые будут белица
С чего это? Такое умножение возможно, когда стены имеют одинаковые высоту и длину, а в подавляющем большинстве случаев это не так.

Цитата: Diskriptor
в комнате, поскольку в условии не сказано, сколько стен будить белица, надо также отнять площадь батарей, под которыми побелка не будить производится (вероятно)
в итоги получаем. А*В*С (количество стен)-Z(площадь, которую задимають батареи, если они есть у стены, которую мы белим)
Потолок А*В-Z(мест крепления люстры или нескольких )
А окна и дверной проём тоже белить будем?
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Страниц: 1 2 [3]  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines