ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    « Ази »програмування та навчальні програми
         

     

    Інформатика, програмування

    «Ази» програмування та навчальні програми.

    Р. Манекін

    При першому знайомстві з людиною (особливо якщо це знайомство обіцяє бути довгим, міцним) прийнято справлятися про його родину, про основні етапи його біографії, про прийнятний для нього мові (спосіб) спілкування. Сьогодні Ви знайомитесь з новим апаратом - КОМП'ЮТЕРОМ. Чому б Вам не надійти в цьому випадку аналогічним чином? А саме: постаратися побільше дізнатися про те, що представляє із себе ця нова для Вас машина.

    У вирішенні цієї проблеми Вам допоможуть перші розділи даного посібника.

    § I . Загальні відомості про ЕОМ.

    Історія ЕОМ налічує ось уже понад півтора століть. Біля витоків електронно-обчислювальної техніки стояли такі відомі інженери і дослідники, як Ч. Беббiдж, А. Лавлейс (дочка Ч. Байрона), Дж. Буль, Ф. М. Слобідський, В. Я. Слонимский, І. Штоффель, Ю. М. Дьяков, П.Л. Чебишев, Г. Холлеріт, Атанасов, Айткен, ін Перша ЕОМ, що володіє всіма компонентами сучасного комп'ютера (проміжної внутрішньою пам'яттю, програмним забезпеченням, інш. - Мова чекає про машину «EDSAC», винайденої Дж.Еккертом і Дж.Моучлі) була створена в 1947 р. в Пенсильванському університеті (Англія). З тих пір змінилося вже три покоління ЕОМ, кожне з яких відрізнялося від іншого цілим набором технічних характеристик. А саме:

    I. своєї елементної базою [1]

    2. швидкодією [2] ;

    3. об'ємом оперативної пам'яті [3]

    4. математичним забезпеченням;

    5. зовнішніми пристроями [4] , [5] , тощо,

    Сьогодні існує вже кілька видів і незліченна кількість модифікацій (типів) ЕОМ, а загальний обсяг парку ЕОМ перевищує 109 машин. [6]  

    Більшість ЕОМ працює на основі двійкової системи числення. [7]  Що це таке?

    двійковій навивається така система числення, де є тільки дві цифри - нуль і одиниця.

    Чому винахідники ЕОМ відмовилися від звичної нам десяткової системи і перейшли на іншу?

    Справа в тому, що електронні системи, в яких електричний струм може знаходитися в двох станах (чи він є в колі, або його немає), найбільш прості і надійні. Разом з тим навіть за допомогою двох цифр - 0 і 1 - можна записувати числа будь-якої величини, складати їх, множити і ділити. Будь-яке повідомлення, найскладніше, може бути виражено в двійковому коді у виді серії відповідей типу «так» і «ні».

    (Якщо повідомлення записано словами, можна знайти кожне слово в словнику, задаючи такі питання: знаходиться вона у першій половині словника - так чи ні? Далі: знаходиться вона у першій половині цієї частини - так чи ні? І так далі. І в цьому випадку слово буде відповідати ланцюжок чисел типу 100111001. Для того, щоб зaкодіровать слово в словнику в чверть мільйона слів, достатньо щонайбільше вісімнадцяти , з відповідями 1 або 0 (оскільки 218 більше 250 тис )).

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

    Мови асемблерні типу безпосередньо «переводять» інструкції програмістів в машинні команди. (Машинні команди різні для різних типів ЕОМ. Для їх написання треба добре знати «пристрій» кожній конкретної машини, що з неминучістю відволікає фахівців від рішення задач змістовного характеру).

    Алгоритмічні мови призначені для «Проміжного спілкування фахівців та електронно-обчислювальних машин. Щоб машина могла «розуміти» алгоритмічні мови, в пам'яті ЕОМ постійно зберігаються т.зв. «Транслятори з мов програмування» - спеціальні програми-»перекладачі» на мову машинних команд.

    Серед мов високого рівня розрізняють процедурно-орієнтовані і проблемно-орієнтовані. До процедурно-орієнтованим зазвичай відносять універсальні мови (FORTRAN, PL-1, PASKAL, інш.); проблемно-орієнтовані мови призначені для вирішення вузько спеціальних завдань. Багато універсальні мови програмування часто використовують для вирішення однотипних завдань. Так, FORTRAN застосовується при веденні обчислювальних розрахунків, PASKAL - для вирішення економічних завдань, GPSS називають «мовою моделювання», BASIС вважається мовою, що спрощує процес користування ЕОМ.

    До теперішнього часу кількість офіційно зареєстрованих алгоритмічних мов сягає двох тисяч. З них широко поширені більше 100. На оволодіння будь-якою мовою програмування підготовленій людині потрібно від декількох тижнів до декількох місяців. Так що і Ви, трохи потренувавшись, зможете самостійно вивчити будь-яку мова програмування, а потім і застосовувати його при вирішенні дослідницьких завдань.

    Далі. Елементарні операції по роботі з пристроями ЕОМ, з управління її ресурсами - все це операції дуже низького рівня. Робота користувача на ЕОМ складається з кількох сотень чи навіть тисяч таких операцій. Звичайно, описувати кожну з них спеціально в комп'ютерних програмах дуже незручно. Тому більшість сучасних електронно-обчислювальних машин забезпечені «вбудованою» в пам'ять універсальною комп'ютерною програмою, яка здійснює управління пристроями ЕОМ, розпоряджається її ресурсами (оперативною пам'яттю, інш.), запускає інші прикладні програми на виконання і т.д.

    Подібні програми називаються операційними системами [8] . Основне призначення операційних систем полягає в тому, щоб приховати від користувача складні і непотрібні подробиці управління машиною і надати йому зручний інтерфейс (тобто спосіб спілкування з її пристроями).

    Взаємодія користувача ЕОМ з операційними системами побудована за принципом діалогу. Практично це виглядає так: користувач набирає на клавіатурі відповідну команду - операційна система виконує його інструкцію. Такий спосіб «спілкування» користувача і ЕОМ ненагляден і не досить зручний, бо користувач не має можливості коригувати свої дії. Тому програмісти часто, разом з операційними системами, вводять в пам'ять ЕОМ і т.зв. «Програми-оболонки». Функція цих програм полягає в тому, щоб виводити на екран монітора ЕОМ опису дій, які виробляють операційні системи. За допомогою «Програм-оболонок» можна переглядати що містяться в пам'яті комп'ютера каталоги програм, копіювати програми, запускати їх на виконання, ін [9]

    При побудові комп'ютерних програм прийнято дотримуватися певних правил [10] .

    А саме: створюючи ту чи іншу комп'ютерну програму, слід враховувати тип ЕОМ, для якої вона призначена, програмне середовище, в якою вона повинна існувати, образотворчі засоби обраного Вами мови програмування;

    при програмуванні потрібно строго дотримуватися синтаксису обраного мови програмування; уникати використання нестандартних і машінозавісімих конструкцій;

    програмування має кілька етапів: постановка завдання, складання алгоритму розв'язання задачі, побудова блок-схеми, написання програми. Початківець програміст повинен дотримуватися принципу поетапності програмування;

    при складанні великих програм необхідно дотримуватися принципу модульності, що приписує розбиття тексту програми на окремі логічно завершені частини - підпрограми. Наявність підпрограм дозволяє легко виправляти допущені помилки, широко використовувати пакети прикладних програм, інш.

    5. будь-яка складена Вами програма повинна бути записана так, щоб її без проблем міг прочитати інший програміст. Тому найбільш вдалі комп'ютерні програми завжди забезпечені коментарями, різними довідниками, тощо.

    Дотримання цих простих правил зробить створені Вами програми ефективним засобом як навчання, так і дослідження.

    * * *

    Що ж. Будемо вважати, що Ваше перше знайомство з КОМП'ЮТЕРОМ відбулося? Чудово! Тоді почнемо знайомитися з ним ближче. Але тільки ось ще що ... Для того, щоб навчитися користуватися комп'ютером, треба працювати на ньому. Найчастіше при проведенні історико-філософських досліджень використовуються персональні комп'ютери. Наприклад, типу IBM РC. Якщо у Вашому комп'ютерному класі є ці машини - не соромтеся! Сідайте за клавіатуру! І давайте приступимо до роботи.

    § 2. Що таке програма?

    Взагалі кажучи, комп'ютер - це не більше, ніж механізм, здатний сприймати і генерувати електричні сигнали. Те, що надає сенс комп'ютера і виправдовує його призначення, називається «програмою». У розхожому сенсі «програма» - це певна послідовність дій, яка може привести нас до бажаного підсумку. Здається, що це визначення в Загалом і в цілому не суперечить численним визначень даного терміну, представленим у спеціальній науковій літературі. З цього визначення для нас зараз важливо те, що програма може привести нас до бажаного результату і те, що програму характеризує покроково. Тобто те, що вона cocтоіт з певної кількості проміжних дій, які ми повинні зробити, якщо хочемо її здійснити.

    Комп'ютерним програмами, на відміну від маси інших (наприклад, програми спецкурсу з історії філософії), властива строга формалізація. Те є кожен наш крок має бути в ній виражений визначено і несуперечливо. Таку можливість нам дають сучасні мови програмування. Найбільш простим для засвоєння звичайно вважається BASIС, і тому почнемо знайомство зі створенням програм, спираючись на еtot мову.

    Мова програмування складається з набору команд, які зазвичай називають операторами. Давайте ознайомимося зараз з деякими з них, а потім спробуємо скласти з цих операторів невелику програму.

    Отже, запам'ятаємо, що оператор PRINT - означає - друкуй. Оператор GOTO - означає - іди на (таку-то рядок). По-англійськи ми б написали GO ТО, але це BASIC, і тому запам'ятайте, будь ласка, правильне написання на BASIС.

    Оператор RUN запускає програму, тобто змушує її реалізовуватися.

    Навіть знаючи ці три оператори, можна написати мікроскопічну програму. Давайте зробимо це. Але попередньо домовимося, що всі операції ми будемо нумерувати, щоб комп'ютер знав, що робити спочатку, а що потім.

    1. PRINT «Як Вас звуть? »

    2. GOTO

    Отже, наша перша програма написана. Відзначимо також, що, якщо ми хочемо, щоб команда PRINT була виконана, текст, що йде після цього оператора, необхідно взяти в лапки (це елемент синтаксису BASIС). І ще одне - при наборі програми в кінці кожної команди натискайте клавішу ENTER .. Вона, по-перше, забезпечить Вам запам'ятовування комп'ютером цього фрагмента програми, а, по-друге, переведе рядок.

    Тепер запустимо програму. Команда запуску, як ми пам'ятаємо-RUN. Набираємо RUN ... І отримуємо нескінченну низку питань «Як Вас звати?»

    Давайте перервемо череду, натиснувши на клавішу ЕSСАРE (вона зліва вгорі клавіатури), і розберемося як працює наша програма. У першому рядку програми ми вказали комп'ютера, що хочемо, щоб він вивів на дисплей (тобто екран монітора комп'ютера) питання «як Вас звати?». Але не відразу, а після запуску програми - це теж необхідно засвоїти. У другому рядку ми дали команду комп'ютера перейти знову до першого рядку. І, таким чином, вийшов замкнене коло. У програмуванні він називається «цикл», і надалі ми будемо його використовувати.

    Якби ми написали тільки перший рядок і відразу запустили прогpaмму (можете спробувати це зробити), то на дисплеї з'явився б тільки одне питання «Як Вас звати?», і програма би завершилася. А оператор goto перетворює процес виконання програми в нескінченний (поки включений комп'ютер і працює ця програма).

    Ви скажете, що у наведеній програмі немає ніякого сенсу. Що ж, Ви, мабуть, мають рацію. Давайте подумаємо, як надати сенс нашої програмі. Ви напевно читали Платона. І знаєте, що основною формою його творів був діалог. І це не випадково. Здавна відомо: кращим способом викладання навчального матеріалу є діалог та вчителі Учня.

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

    У BASIC є конструкція, яку можна виявити і в англійській мові. Мова йде про конструкції ЯКЩО ... ТО ... ІНАКШЕ. Або, по-англійськи, IF ... THEN ... ELSE. Ця конструкція називається «умовний перехід». Вона може реалізовуватися або в повному вигляді, або в усіченому: IF ... THEN ... (тобто ЯКЩО ... ТО ...). Поки запам'ятаємо цю конструкцію і перейдемо до способу представлення інформації, що зветься «змінними».

    Для того, щоб обробити інформацію, потрібна не тільки програма і комп'ютер, потрібна і власне інформація. У комп'ютер інформація звичайно вводиться у вигляді так званих «змінних». Змінні і складають вихідні дані, які обробляє машина. Змінні бувають різних типів. Є логічні змінні - коли в комп'ютер вводиться інформація типу ТАК чи НІ. (У або N); є числові змінні, то є змінні, виражені будь-яким числом; є текстові змінні, виражені літерою або текстом.

    Щоб розрізняти змінні один від одного, їм присвоюють імена. Ім'я змінної має починатися з літери (це обов'язково). Якщо змінних багато, то, щоб не заплутатися, їм дають такі імена, щоб відразу було ясно призначення змінної в програмі. Давайте створимо невелику програму з використанням змінних. Але спочатку запам'ятаємо, що команда, щоб ввести змінних позначається так - INPUT.

    Цей оператор призначений для того, щоб мінлива вводилася студентом за допомогою клавіатури. Наприклад, якщо ми складемо таку програму, де будемо питати студента, в якому році народився Платон. Отже створимо змінну year, але спочатку поставимо запитання:

    PRINT «В якому році народився Платон?»

    INPUT year

    PRINT «Ось це так!»

    END.

    Спробуйте набрати ату програму і подивіться, як вона працює. Сподіваюся, Ви не забули, що запускається програма командою RUN.

    Після запуску програми на дисплеї з'явилося питання: «В якому році народився Платон? »і трохи нижче знак питання. Запитливий знак показує, що машина очікує від Вас введення з клавіатури якого-небудь числа. Після введення в комп'ютер числа (наприклад, 428 - Платон народився 427 (428 р. до н.е.; після введення числа не забудьте натиснути ENTER) комп'ютер виведе на дисплей фразу «Ось це так!». І робота програми закінчиться. Як Ви думаєте, чому? Правильно, тому, що після виконання приписи на третьому рядку, машина звертається до четвертої, а там стоїть оператор END, що показує, що на цьому етапі програма закінчена. Запам'ятайте про всяк випадок команду END і, якщо захочете, знову запустіть програму командою RUN.

    А тепер питання. Чи можна зробити цю програму нескінченної? Щоб вона весь час питала про рік народження Платона і, отримавши відповідь, знову їм цікавилася? Подумайте, ми про це вже говорили.

    Р.S. У цій програмі, як Ви можете переконатися, ми не врахували деяких обставин. Ну, наприклад, як вона себе поведе, якщо Ви помилково або з цікавості введете літерні символи або натиснете на яку-небудь іншу клавішу. Спробуйте і подивіться на реакцію комп'ютера. А в подальшому, коли Ви краще освоїте програмування, подумайте, як Вам описати в програмі всі ці випадки. Упевнений, Ви швидко переконаєтеся, що це зовсім не важко!

    § 3. Чи може комп'ютер оцінити висловлювання?

    Тепер давайте ускладнимо нашу програму, щоб вона могла аналізувати наше висловлювання. Почнемо, як завжди, з самого простого. Візьмемо нашу останню програму і злегка її доповнимо. Тільки ось що. Давайте змінимо її нумерацію на порядок. Тобто замість того, щоб нумерувати рядка 1, 2, 3, 4 будемо нумерувати 10, 20, 30, 40. Що це нам дасть? А те, що структура програми стане більш пластичної. Наприклад, якщо раніше між першим і другим оператором ми нічого не могли вставити, так як нумерація BASIC (на відміну, скажімо, від FOCAL) не визнає дрібних чисел, то при новій системі ми зможемо легко вставити між 10-м і 20-ї рядком цілих дев'ять рядків. Тобто програма стає як би «дихає».

    Отже, починаємо доповнювати нашу програму. Давайте зробимо так, щоб вона давала різну реакцію на різні цифри, що вводяться Вами в комп'ютер. У прінціпе ми можемо зробити, щоб вона реагувала на кожне розходження, але для простоти давайте домовимося так. Якщо введене число буде більше 500, то відповіддю буде «Ось це так!», якщо число, що позначає рік народження Платона, буде в межах від 400-500 включно, то комп'ютер відреагує такою реплікою: «Як добре Ви знаєте історію філософії!». При введенні числа в межах від 300 до 400 відповідь буде виглядати так: «Ну, це не зовсім точно », від 200-300 -« Ви, мабуть, обмовилися! », нарешті, всі числа менше 200 викличуть у комп'ютера реакцію: «Цього не може бути!». Ну а тепер, якщо не заперечуєте, приступимо до побудови програми.

    Не забувайте, що нумерація рядків v нас тепер буде через десяток, і що ми тепер будемо використовувати оператори IF ... THEN ... ELSE. Давайте подивимося, що у нас вийшло:

    10 PRINT «В якому році народився Платон? »

    20 INPUT year

    30 IF year> 500 THEN PRINT «Ось це так!»

    40 IF year> 400 & year <500 THEN PRINT «Як добре Ви знаєте історію філософії! ».

    50 IF year> 300 & year <400 THEN PRINT «Ну, це не зовсім точно»

    60 IF year> 200 & year <300 THEN PRINT «Ви, мабуть, обмовилися!»

    70 IF year <200 & year THEN PRINT «Цього не може бути!»

    80 END.

    Ви, напевно, відразу звернули увагу, що ми використовували ще одну команду. Це оператор AND, то є «і». Значення його очевидно. Скажімо, проаналізуємо 40-й рядок програми. Її можна описати так: якщо введене число, що позначає рік народження Платона, дорівнює або більше 400 і, в той же час, менше 500, то друкуй: «Як добре Ви знаєте історію філософії!»

    Якщо ж введене число не відповідає умові, заданому в 40-й рядку, то комп'ютер починає перевіряти на відповідність наступну, тобто 50-й рядок і т.д.

    Ну а тепер давайте запустимо програму (команда запуску RUN). Спочатку постало питання: «В якому році народився Платон? »І на наступному рядку з'явився знак питання, що показує, що комп'ютер чекає від нас введення відповіді з клавіатури. Припустимо, ми ввели число «428». Наша програма починає його аналізувати. Перевіряє, чи відповідає введене число умові, заданому в 30-й рядку, тобто більше воно 500. Якби умова була виконана, то на дисплеї з'явилася б вже знайома нам рядок «Ось це так!». Але 428 менше 500, тому комп'ютер переходить до 40-ї рядку програми.

    У 40-й рядку здійснюється перевірка - чи знаходиться Так як наше число - 428 - знаходиться саме в цих межах, на дисплеї з'являється репліка - «Як добре Ви знаєте історію філософії! »Далі комп'ютер послідовно перевіряє: не відповідає Чи наше число інших умов, заданим в рядках 50,60,70. Але такого відповідності немає, і тому машина доходить до 80-й рядки програми і згідно з її приписом END припиняє роботу. Якщо ми знову захочемо запустити цю програму, то знову повинні дати команду RUN.

    А тепер питання, як нам зациклити програму? Тобто зробити так, щоб відреагувавши на відповідь, машина знову (автоматично) поставила нам питання, нагадаємо, що найкраще це зробити, використовуючи оператор (команду) goto.

    Отже, ми з Вами переконалися, що машина цілком може оцінити формально описаний висловлювання. Але комп'ютер може реагувати не тільки на числа, ай на інші символи і їх поєднання. Ну, наприклад, Ви хочете, щоб перед початком роботи з якою-небудь програмою, її користувач отримав приємний настрій на спілкування з нею. Тоді можна зробити так. Спочатку нехай машина вітання з користувачем, потім дізнається, як його звати, і позитивно відгукнеться про його імені (це завжди підкуповує).

    Тільки спочатку домовимося, що змінну імені ми позначимо NAME, а так як вводити з клавіатури буде потрібно літерні символи, то в кінці імені змінної ми повинні будемо поставити значок долара $, щоб машина зрозуміла, що мова йде про слово, а не про числі. Отже, домовилися, наша змінна буде виглядати так:

    NAME.

    10 PRINT «Добрий день! Як Вас звати? »

    20 PRINT NAME $

    30 PRINT «Яке чудове ім'я!»

    40 PRINT «Покличте, будь ласка, кого-небудь ще».

    50 goto 10

    Як Ви, мабуть, встигли помітити - тут ми зациклило програму. І вона здатна працювати незліченну кількість разів, до тих пір, поки комп'ютер не відключать. Ми можемо внести в цю програму корективи, якщо, звичайно, будемо вважати за необхідне. Ну, наприклад, ми хочемо, щоб на певні імена ця програма реагувала по-особливому. Скажімо, нам дуже подобається ім'я Ірина. Хай воно і в програмі буде виділено з ряду інших. Для цього нам потрібно задати в програмі необхідна умова. Виглядати це буде приблизно так: якщо (IF) змінна (NAME $) буде дорівнює «Ірині», то (THEN) друкуй (PRINT) «Це ім'я приводить мене в захоплення !».

    Ця умова цілком вміститься в одному рядку. А рядок ми помістимо де? Правильно, між 20-й і 30-й рядком. Нехай номер цього рядка буде 25.

    10 PRINT «Добрий день! Як Вас звати? »

    20 INPUT NAME $

    25 INPUT «Ірина» THEN PRINT «Це ім'я приводить мене в захоплення!»

    30 PRINT «Яке прекрасне ім'я! »

    40 PRINT «Покличте, будь ласка, кого-небудь ще ».

    50 goto 10

    Запустіть програму і подивіться, що у Вас вийшло. А тепер подумайте, чи можна зробити так, щоб у разі введення імені «Ірина», програма повідомляла лише про захваті і не друкувала «Яке прекрасне ім'я! »(але друкувала її в усіх інших випадках). Підказка - тут потрібно використовувати оператор ELSE. Але де і як? Подумайте!

    § 4. Постановка завдання

    Ну, а тепер, після того, як ми отримали деяке уявлення про програмування, поговоримо про те, що потрібно для того, щоб «Пояснити» своє завдання.

    Для початку було б непогано, якби Ви самі мали чітке уявлення про те, що Ви хочете. Під чіткістю мається на увазі не те просту обставину, що «я хотів би мати гарну програму з історії філософії, яка б працювала зі мною в режимі діалогу ». Цього, звичайно, мало. Це тільки початок постановки завдання і, як Ви, мабуть, здогадуєтесь, виходячи з попереднього, на таке благопобажаннями комп'ютер навряд чи відгукнеться.

    Коли ми з вами складали попередні програми, ми зрозуміли, що комп'ютер «розуміє» ряд команд (наприклад, «друкуй», «перейди до рядку такий-то »,« якщо »,« то »,« інакше »,« край »,« ввести символ »). Набір цих команд (загальна їх кількість BASIC приблизно сорок-п'ятдесят) становить мову, який «розуміє» комп'ютер. Так ось, на цією мовою ми і повинні описати всі наші дії.

    Однак відразу з листа програму написати складно. Так як нам незручно тримати в голові всі логічні зв'язки між різними частинами програми. Звичайно, якщо програма проста (ну на зразок тих, що нам з Вами знайомі), то, при деякому кавике це можна робити досить легко. Але, якщо вона досить розгалужена, має кілька варіантів відповіді на пред'явлений питання, то без графічного опису програми обійтися досить важко.

    Проілюструємо цю думку прикладом.

    Тут вже не раз згадувалося ім'я Платона. Давайте візьмемо один з його діалогів, скажімо, діалог «Тімей» (Див. Платон. Соч.: В 3-х т. T.3. ч.I. M. I97I. C.455-543) і спробуємо на основі етoгo твори створити програму.

    Очевидно, що спочатку ми повинні будемо описати те, що мм хочемо отримати в самому загальному вигляді. Нехай це буде програма, призначена для навчання студентів. Далі, нехай це буде програма, яка працює в режимі діалогу, тобто вона буде пропонувати питання і деякий набір відповідей, з яких студент повинен буде вибрати найбільш кращий. Потім ми повинні будемо вказати машині, які відповіді правильні, а які ні, а також, що робити в разі того чи іншого відповіді, як вірного, так і невірного. Отже, в загальних рисах завдання поставлене. І тепер справу за зокрема, які, як і у всіх інших справах, у кінцевому рахунку, все і визначають. Якщо Ви ще раз пробіжить очима наведені вище умови, Вам стане зрозуміло, що без глибокого знайомства з діалогом Платона і з коментарями до нього, з науковою літературою, присвяченої творчості Платона, не обійтися. Це Ви повинні запам'ятати добре. Якщо Ви хочете, щоб комп'ютер допомагав Вам у навчальної, наукової і будь-якої іншої діяльності, Ви повинні наповнити його змістом. Змістовна сторона завжди буде визначати вибір засобів подання філософських знань у комп'ютерних системах.

    Отже, беремо діалог Платона «Тімей», уважно читаємо його, обдумуємо, які питання взяти з цього твору, в якій формулюванні, в авторській або власної. Підбираємо відповіді на ці питання, як правильні, так і не дуже. Розставляємо ці питання в певному порядку, встановлюючи, який буде першим, який другим і так далі. І після цього починаємо розробляти алгоритм програми.

    Давайте ж підберемо ці питання. Щоб програма не була для нас дуже великий, тому що ми ще починаючі програмісти, зупинимося на п'яти питаннях.

    А) Перше питання буде виглядати так:

    «Чи містить діалог Платона Тімей концепцію Космосу як живої істоти, обдарованого розумом? »

    Далі ми повинні запропонувати якийсь вибір відповідей, так як всі можливі варіанти ми не можемо уявити самі і, відповідно, зал ожити в махай ну. Давайте для простоти зупинимося на трьох варіантах. Перший (назвемо його «1») нехай буде невірний, другий ( «2»)-правильний, третій буде «Не знаю» ( «3»). З огляду на варіант «А», ми даємо можливість студенту не погодитися з першими запропонованими і ознайомитися з точкою зору самого Платона.

    Якщо Ви знайомі зі змістом діалогу Платона «Тімей», то, напевно, скажете, що найпростіше варіанти відповідей висловити таким чином:

    Ні

    Так

    Не знаю

    А тепер спробуйте зрозуміти, що машина повинна буде зробити (що потрібно змусити її зробити) у випадку, якщо студент вирішить натиснути клавішу «1» або «2» або «3».

    Оскільки відповідь «1» (Ні) неправильний, давайте зробимо так. Видамо діагностику відповіді:

    «Ви помилилися, подумайте ще раз!»

    А потім повернемо студента до першого питання з тим, щоб дати йому можливість відповісти правильно. (Зауважимо, що в цій програмі наша завдання навчити студента, а не проконтролювати його знання!) Правильність другу відповіді (Так) сподіваюся, прозора, і тому ми переведемо студента, що натиснули другий клавішу, до другого запитання Або ні, давайте, щоб у нього не залишалося сумнівів в солідній глибині власних знань спочатку повідомимо йому, що відповідь вірний, а потім запропонуємо наступне питання ( «Б »).

    У тому випадку, якщо студент натисне на клавішу «3», то є віддасть перевагу варіант «не знаю», ми дамо таку діагностику:

    «Почитайте, будь ласка, розділи 29е-31в діалогу Платона Тімей ».

    (В принципі, тут можна навести й сам зміст цих розділів).

    Потім переведемо студента знову до першого питання, то Тобто, як ми казали раніше, "зациклилися" цю частину програми.

    Б) наступне питання, якщо не заперечуєте, буде виглядати так:

    «ототожнював чи Платон поняття Космос і Людина?»

    I. Так

    2. Ні

    3. Не знаю.

    Перша відповідь невірний. Тому ми пред'являємо студенту, натиснути клавішу «1», таку репліку:

    «Це перекручення думки Платона. Ототожнення понять Людина і Космос характерно для філософії більш пізнього часу. Подумайте, будь ласка, знову ».

    А потім, як Ви вже, мабуть, здогадалися, ми повертаємо студента до питання «Б».

    Друга відповідь правильний. Тому, видавши позитивну діагностику ( «Відповідь вірний»), переведемо студента до питання «В». А втім, навіщо така сухість? Давайте прагнути створювати ілюзію діалогу, може бути, відповімо так:

    «Ви маєте рацію, і я з задоволенням про це повідомляю. Приємно поговорити з розумною людиною ».

    Так, мабуть, так краще. І тепер перейдемо до третього варіанту. Тут діагностика буде наступна:

    «Подивіться, будь ласка, розділи 41а-47е діалогу Платона Тімей ».

    (Тут також було б доречно навести зміст зазначених розділів).

    В) Наступне питання, яке ми з Вами пред'явимо студенту (якщо Ви не згодні, то надалі можете легко замінити його на будь-який інший) буде мати такий вигляд:

    «Є думка, що спеціальний нарис вчення Платона про космічних функції розуму включає в себе концепцію гармонійного членування Космосу - вчення про взаємні відстанях зірок і деяких законах Природи. Чи згодні Ви з ним?

    Так

    Ні

    Не знаю ».

    Для різноманітності ми вирішили правильну відповідь помістити під номером один, тому в разі натискання на клавішу «1» нехай машина видасть репліку:

    «Блискуче! Я від вас іншого і не чекав ».

    І потім запропонує студенту питання «Г».

    У разі якщо студент відповість «Ні» (клавіша «2»), діагностика буде наступною:

    «Ви не маєте рації. Перечитайте, будь ласка, розділи 3Iв-37С діалогу Платона Тімей. Особливу увагу зверніть на розділи 35В-37С названого твору ».

    Якщо ж студент пошлеться на незнання ( «3»), то зазначимо йому місце в першоджерелі, прочитавши яке, студент зможе правильно відповісти на це питання. (В даному випадку доречно запропонувати студенту ознайомитися з розділами 31в-37в діалогу Платона «Тімей»).

    А потім знову повернемо студента до того ж питання.

    Г) Останнє питання ми поставимо трохи інакше, щоб Дати Вал уявлення про можливості застосування і інших методик:

    «Чи включає в себе спеціальний нарис вчення Платона про космічних функції розуму наступні концепції?

    Вчення про Часу та його органах.

    Вчення про вищі класах живих істот або які стали богів.

    Концепцію про з'єднання світового тіла і світової душі.

    Вчення про найбільш загальні закони людського існування?

    Не знаю ».

    Зауважимо, що ми вирішили запропонувати варіанти відповіді, спираючись

    на твори Платона. Тобто в діалозі «Тімей» докладно наведені (і в тих самих термінах, що вкрай важливо з методичної точки зору) ті варіанти відповідей, які ми запропонували студенту. Таким чином, змістовна частина нашої програми - вільна від закидів у вільному тлумаченні теорії Платона. Рекомендуємо запам'ятати це нескладне правило: Ваші питання і варіанти відповідей повинні бути валідність і коректні.

    Однак перейдемо до реплік на різні варіанти. Перший варіант неправильний. Тому репліка буде наступною:

    «Вашу відповідь неточний. Вчення про Часу та його органах входить до загального, але не в спеціальний нарис вчення Платона про космічні функції розуму. Спробуйте порівняти змісту розділів 31-37С та 37С-39е діалогу Платона Тімей. Потім перечитайте розділи 29е-47е названого твору і спробуйте відповісти ще раз ».

    (Остання вимога необхідно для того, щоб студент міг уявити місце названих доктрин Платона в контексті його вчення про функції космічного розуму).

    Після чого ми повертаємо студента до питання «Г». Якщо він віддасть перевагу відповідь «2» (невірний), то репліка буде такий:

    «Подумайте ще раз. Раджу перечитати розділи 31-37С і 39e-40d діалогу Платона Тімей. Потім прочитайте розділи 29е-47е і спробуйте відповісти знову ».

    І знову повертаємо студента до питання «Г». У тому випадку, якщо студент визнає правильним відповідь «3», він не помилиться. Ми відзначимо його успіх, підкріпімо його думкою Платона і переведемо до питання «Д»: «Ви маєте рацію, і я радий, що Ви впоралися і цього разу (власне я від Вас і не чекав іншого »).

    (Тут, як і раніше мало б сенс привести зміст розділів 31в-37С діалогу Платона Тімей).

    Натиснувши на клавішу «4», студент отримає роз'яснювала репліку, і йому знову буде пред'явлений питання «г». Репліка буде виглядати таким так:

    «Ви помилилися. Порівняйте зміст розділів 31в-37 і 41a-d діалогу Платона Тімей. Перечитайте також розділи 29е-47е названого твору. Будь ласка, спробуйте відповісти ще раз ».

    У тому випадку, якщо студент спробував відговоритися незнанням, наше завдання дати йому це знання, тому ми видамо йому таку репліку:

    «Познайомитеся зі змістом розділів 36 - 37С діалогу Платона Тімей ».

    (Ще краще, якщо тут буде наведено зміст цих paзделов і вказана література, ознайомившись з якою студент зуміє правильно відповісти на поставлене запитання).

    Потім ми знову запропонуємо студенту те ж питання, щоб, озброївшись новим знанням, він зміг на нього правильно відповісти і закріпити таким чином отриману інформацію.

    Д) П'ятий питання знову буде не такий, як попередні. Тут студенту буде надана можливість або дізнатися про композицію Діалогу Платона «Тімей», або повернутися до початку і повторити все наново, або, якщо він вважає, що всі засвоїв і відомості про композицію діалогу «Тімей» йому нецікаві, закінчити роботу з програмою, Отже п'яте питання:

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

    Повернення до початку програми.

    Відомості про композицію діалогу Платона Тімей.

    Кінець ».

    У випадку, якщо той, кого навчають натисне клавішу «1», то ми, згідно його бажанням, повернемо його до питання «А», і він зможе попрацювати з програмою заново (можливо йому буде цікаво, які заперечення він отримає, натиснувши на яку-небудь іншу клавішу). Якщо студент натисне на клавішу «3», то робота програми буде припинено.

    Якщо учень виявить цікавість до композиції діалогу Платона «Тімей», то на дисплеї з'явиться таке: «Композиція діалогу Платона Тімей така:

    1) Вступ 2) Функція космічного розуму (розділи 29е-47е)

    3) Функції первинної матерії як необхідності (розділи 47е-69а).

    4) Сукупна дія розуму і матерії в освіті людського організму (розділи 69-92в). 5) Висновок (розділ 92с).

    1) Повернення до початку програми.

    2) Кінець ».

    І тут ми теж пропонуємо кого навчають зробити вибір: чи хоче він продовжити роботу з програмою (клавіша «1») або припинити (клавіша «2 »).

    § 5. Побудова блок-схеми

    У попередньому розділі ми показали, як потрібно ставити завдання і опрацьовувати її до найменших деталей - останнє називається -- складати алгоритм програми. Справа ця цілком посильну навіть тим, хто ніколи не стикався з програмуванням. Єдина умова-це добре знати предметну область (тобто розбиратися в змістовній частині). Втім, є, ще одне - здатність мислити логічно, щоб різні частини програми не суперечили один одному. Але ми вважаємо, апріорі, що етa здатність у Вас є.

    Але чи завжди зручно так розписувати програми? Чи не Кращий час уявити її графічно? Ми інтуїтивно відчуваємо, та й знаємо з досвіду, що все те, що можна охопити як єдиний інформаційний образ, сприймається краще. Є цьому і пояснення.

    Дані сучасної археології говорять про те, що якщо ми співвіднесемо на тимчасовій шкалі відстань від появи людини виду «хомо сапієнс »до створення ним писемності з відстанню від часу створення писемності до наших днів, то ми побачимо, що перше відноситься до другого як 99 до 1 (та й то в кращому випадку). Іншими словами, людство має набагато більший досвід роботи з інформаційними образами матеріальних об'єктів, ніж з абстрактними суто інформаційними образами (рахунок, писемність і т.д.).

    «Цей історичний факт, - пише відомий фахівець в області інформатики Г. Р. Громов [11]  - В значною мірою пояснює виграш в ефективності вирішення абстрактних інформаційних завдань, що дають в даний час засоби машинної графіки. Графічний дисплей по суті «матеріалізує» абстрактні інформаційні образи й дозволяє, таким чином, включити в процес вирішення задачі найбільш потужні області людської інтуїції (які були розвинуті за перші 99% часу розвитку людського интелл

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status