Основы программирование – . 0.

Содержание

Основы программирования

https://loftblog.ru/material/1-logika-algoritmy/

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

Урок 1. Введение
Хороший мотивирующий ролик, короткий и наглядный. Чёрт возьми, мне захотелось действительно научиться программированию! Но моя задача другая: не выучить конкретные языки, а разобраться в «механике» и терминологии.

Урок 2. Логика и алгоритмы
На самом деле, мы все немного программисты. Мы живём и действуем по алгоритмам, которые мы или сами себе составили или получили от других людей. Только настолько к этому привыкли, что не замечаем отдельных команд, а воспринимаем всё, как единый поток действий.
В этом ролике предельно доходчиво рассказана, а главное — показана вся суть программирования. Дано фундаментальное понятие алгоритма, их виды, и показано, как устроен каждый вид алгоритма. А ещё для меня открытием стало то, что программист — профессия креативная! Да, несмотря на логическую основу действий. Здесь и полная свобода в коде, и правило DRY (Don’t repeat yourself, «Не повторяйся!»), и баланс между минимализмом решений и простотой улучшений… Не ожидал. Задумался.

ДЗ можно посмотреть в комментариях по ссылке:
https://loftblog.ru/material/1-logika-algoritmy/#comment-3602 Обсуждение приветствуется.

Урок 3. Типы данных и их виды
Три основных типа данных: числовые, строковые и булевые, теперь стали понятны. Николай Чернобаев, автор курса, не просто рассказал о типах данных, но и показал, и дал «поиграть»: вывести в консоль, перевести из одного типа в другой. Сделал все преобразования следом за ним, и у меня — получилось. А ещё немного заглянули в следующую тему: «Переменные». Это нужно, чтобы понять про сильную и слабую, динамическую и статическую типизацию. Вам уже интересно? Смотрите видео!

Урок 4. Основные структуры данных
Вот теперь я точно знаю, что такое переменные и массивы. Аналогия с коробками, полками и шкафами доходчива просто до безобразия. И хорошо, что рассказано только про основные структуры, Николай не стал грузить всякими стэками и хэшами, ещё успеем. Вот чем мне, методисту с 7-летним стажем, нравится Loftschool, так это тем, что здесь умеют учить. Поверьте, это можно сказать далеко не про каждую онлайн-школу.
И вот эта простота и лёгкость помогла мне перейти к экспериментам: я не просто повторял то, что показано на экране, а сам придумал и собрал элементарную структуру. Кому интересно, смотрите ДЗ по ссылке: https://loftblog.ru/material/4-osnovnye-struktury-dannyx/#comment-3603

Урок 5. Функции
Здесь главное о функциях, их объявлении и вызове, об аргументах функции. Пересказывать не буду, лучше посмотрите ролик.
Отличная аналогия: программа — это как исполнить песню, а функция — одно из действий в этой песне, например, «играть на барабане». Один взмах дирижёрской палочки, и функция «играть на барабане» вызвана. После того как партия барабана закончена, действие переходит к другим инструментам…

Понять, что такое «возврат значения функции» и что именно делает команда return, было сложнее. Чтобы разобраться, реализовал одну и ту же задачу в двух видах, с возвратом значения и без: https://loftblog.ru/material/5-funkcii/#comment-3607 Да, и списался в Телеграм с наставником курса по разработке Сашей Несвитом, он объяснил буквально за две минуты, что к чему.

Урок 6. Арифметические и логические операции
Вот здесь было действительно просто, всё как в пятом классе. Позволил себе поразвлекаться и собрал логическое сравнение, проверяющее, можно девушке замуж или нет? https://loftblog.ru/material/6-arifmeticheskie-i-logicheskie-vyrazheniya/#comment-3609 А какое сравнение соберёте в этом уроке Вы?

Урок 7. Условия в программировании.
В условиях логика и правила просты: если.. то делаем это, или если.., то делаем другое. Вот, в принципе, и всё. Сложнее было отследить синтаксис: поставил лишнюю точку с запятой после фигурной скобки — и привет, код не работает. Меня предупреждали, что программисты — очень внимательные люди, теперь понял, почему. Примеры предельно понятные, никаких сложностей в освоении этого урока.

Урок 8. Циклы в программировании
Циклы — это интересно: инициализировать счётчик, проверить условие, прописать тело, обновить счётчик, повторить… Как попросишь, так и отсчитает. Разобрали 5 вариантов условных циклов, особенно понравился элегантный пример на суммирование элементов массива буквально в 4 строки. В качестве ДЗ сделал простейший цикл на перемножение двух переменных https://loftblog.ru/material/8-cikly/#comment-3611.

Урок 9. Инструменты программиста
В этом уроке рассмотрены в сравнении два важных инструмента разработчика: редактор кода (на примере Sublime Text 3) и интегрированная среда разработки (IDE, на примере PHPStorm). Обозначены ключевые возможности, главный функционал, показано, как работать. Я знаком с инструментами разработки, в основном применительно к HTML: в качестве редактора кода активно пользовал Notepad++, своеобразным аналогом IDE можно считать Adobe Dreamviewver, так что различия понятны. А для задачек на других языках, думаю, подберу что-то из бесплатных IDE (Google намекает на NetBeans) или всё-таки подружусь с Sublime Text 3. А какие инструменты используете Вы?

Урок 10. Первая программа: калькулятор на JavaScript
Автор курса, Николай Чернобаев, на моих изумлённых глазах меньше чем за 1.5 часа написал онлайн-калькулятор, причём с графическим отображением и подсказками. Естественно, здесь было использовано многое из предыдущих уроков, что-то было рассказано с нуля. Очень интересно, что показано не только само написание кода, но и вся разработка как проект, начиная с задумки и планирования на бумаге.

Урок 11. События
Дополнение к программе онлайн-калькулятора, созданного в предыдущем уроке. Когда в программе что-то происходит, например, какое-то действие пользователя, программа реагирует заранее определённым образом. В биологии есть стимул и реакция, в программировании есть событие и его обработчик. Вот так для меня будет понятнее.

Урок 12. Ошибки программирования
Пока я выполнял примеры и ДЗ к этому курсу, успел и сделать, и «отловить», пожалуй все типы ошибок: и синтаксические, и логические, и ошибки выполнения. Искать ошибки интересно, хотя после ..дцатой итерации запуска-поиска начинает неслабо потряхивать. Ну ничего, тренировать внимательность никому не вредно.

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

loftblog.ru

Чудесное введение в программирование / Habr

Доброго времени суток хабр.

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

Итак, оригинал здесь, автор Song Zheng.

Основы программирования

Часть 1. Простые примеры кода.

Возможно вы считаете, что программирование — это очень сложно. Но это не так. В действительности каждый из нас имеет навыки программирования. Не ожидали?
Давайте представим, что мы ведем машину и перед нами появляется знак «СТОП». И что вы сделаете? Вы остановитесь!

Глубоко в глубине нашего мозга, в сплетениях нейронов запрограммированны (На Ruby) примерно такие команды:

if self.saw(stopSign)
    self.stopCar()
end

Чтобы вам было проще понять значение слова " self ", вы можете смело заменить его на " Я ", смысл останется прежним. В целом большинство языков программирования придерживается для своего синтаксиса следующего стиля:
существительное.глагол(предмет)
Разбираем этот пример

Существительное в этом примере называется Объектом. Объект умеет делать разные полезные действия.
Глагол из примера называется Методом или Функцией. Метод содержит пару строчек кода и это код выполняется каждый раз, когда вы его вызываете.

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

def stopCar()
    self.stepOnBrakes()
    self.lookLeft()
    self.lookRight()
end

«Предмет» находящийся в скобках называется параметром. Это просто какие-то данные, которые мы хотели бы передать в наш метод.

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

for e in students
    self.giveChocolateTo( e )
end

В этом коде вместо «е» подставляется по очереди каждый из ваших учеников, которому вы даете конфетку.

Как вы думаете, как можно было бы описать в коде то, как вы занимаетесь спортом? Например вот так:

while ( self.amStillAlive() )
    self.keepRunning()
end


Стоит заметить, что 90% логики в программировании приходится на выражения ' if ' — для управления ходом выполнения задачи и циклов 'for' и 'while'.

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

x = 0
while (x > -1)
    x = x+1
end


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

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

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

Часть 2. Основы.

Представьте что вы Б-г и в 6-й день создания мира. Вы все 5 дней трудились в поте лица, а теперь предстоит создать миллионы людей за 1 день. Как это реализовать? Возможно стоит просто сесть и делать людей один за одним? Нет, все что вам надо так это макет, который описывает, как должен выглядеть человек, и затем с этого макета можно создать столько людей, сколько вы успеете до конца дня.
Собственно этот «макет» — есть один из базовых концептов программирования и зовется он — Класс. Каждый раз, когда вы чувствуете себя неловко при упоминании слова «Класс» — просто замените его на «Макет», это облегчит ваше восприятие.

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

class Character
    def initialize(nameVariable, intelligenceVariable)
        @name = nameVariable
        @intelligence = intelligenceVariable
    end
end

Метод ‘initialize’ выполняется каждый раз, когда создается новый объект и наделяет его теми свойствами, который вы описали в базовом классе. В методе мы задаем имя персонажа «nameVariable» и его уровень его интеллекта «intelligenceVariable» ( префикс " @ " является приставкой «self» для свойств персонажа ). Когда персонаж создан, создаются и его свойства. Давайте создадим 2-х персонажей — персонажа «А» и персонажа «Б»:
a = Character.new( "aperson", 10 )
b = Character.new( "bperson", 10 )

Для персонажа А мы задали 2 значения “aperson” и “10”, которые стали свойствами этого персонажа ( потому-что каждый раз при создании объекта выполняется метод «initialize» ).

В результате у нас есть 2 персонажа, одного из них зовут “aperson” и “bperson”, у которых уровень интеллекта равен 10.

Вы заметили как легко мы создали персонаж, всего лишь раз описав класс? Вы можете создавать объекты еще и еще, всего лишь вызывая Character.new(…). Например вот так:

x = 0;
while( x < 5,000,000,000 ){
    Character.new( "Adam", x )
    Character.new( "Eve", x )
    x = x+1;
}

Вот таким образом и было создано 5 миллиардов Адамов и Ев, которым постепенно увеличивали значение интеллекта. Примерно вот так:

Теперь давайте представим, что каждый наш персонаж обладает способностью смотреть известное телешоу «Джерси Шоур». Т.к. эта способность касается всех персонажей, то стоит это указать в нашем макете-классе:

class Character
    def initialize(nameVariable, intelligenceVariable)
        ...
    end
 
    def watchJerseyShore()
        @intelligence = @intelligence - 2
    end
end

С этого момента, каждый раз, когда персонаж будет использовать ‘watchJerseyShore’ метод, уровень его интеллекта будет снижаться. Например вот так:

a.watchJerseyShore()
a.watchJerseyShore()

Персонаж А посмотрел шоу 2 раза, соответственно уровень его интеллекта снизился до 6.

Возможно это не очевидно, но единственным способом как-то изменить значение интеллекта у персонажа — это вызвать метод watchJerseyShore(). Данная жесткость предотвращает возможность изменения значений у персонажа, в данном случае уровень интеллекта персонажа. Уровень интеллекта не может быть изменен случайно, его можно изменить только намеренно вызвав метод watchJerseyShore(). Эта важная концепция называется Инкапсуляцией, идея сводится к тому, чтобы доступ к свойствам объекта был ограничен. Например, если однажды, выпив лишнего, вы попытаетесь выполнить метод a.intelligence = 100000 — вы получите ошибку.

Ко всему прочему, если вы заходите создать класс «Тинейджер», у которого будут такие свойства как «имя», «интеллект» и который так-же смотрит шоу «Джерси Шоур», стоит ли вам слепо копировать весь тот код, который вы писали, описывая класс Персонаж? Нет! Все что вам необходимо сделать — унаследовать от базового класса его свойства. Если расширить класс Тинейджер классом Персонаж, то все свойства Персонажа унаследуются классом Тинейджер.

class Teenager < Character
end

Дальше можно просто создать объект Тинейджер:

teeny = Teenager.new( "teeny", 10)

Teeny — это объект класса Тинейджер с именем «Teeny» и уровнем интеллекта равным 10. Для того чтобы снизить уровень интеллекта нашего Teeny стоит просто посмотреть шоу Джерси:

teeny.watchJerseyShore()

Эта способность является важной концепцией и называется — Наследование.

Тинейджер рос не таким как все и вы решили изменить значение его метода, отвечающего за просмотр шоу Джерси Шоур. Вы могли бы изменить этот метод следующим образом:

class Teenager < Character
    def watchJerseyShore()
        @intelligence = @intelligence + 2
    end
end

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

Все вместе — Инкапсуляция, Наследование и Полиморфизм составляют основу Объектно-ориентированных языков программирования. Если вы понимаете эти 3 принципа, то вам не составит труда постичь такие языки как Ruby, Java, Objective C, C#, Python и много много других.

END

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

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

habr.com

Основы программирования и основные языки программирования | Info-Comp.ru

Программирование для начинающих

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

Умение писать программы — это такое же умение, как и умение плавать, танце­вать или жонглировать. Некоторым людям действительно удается делать это намного лучше, чем другим, но любой человек сможет достичь определенных результатов при должной практике. Именно по этой причине дети становятся асами программирова­ния в раннем возрасте. Дети не обязательно гениальны; они просто склонны позна­вать новое и не боятся ошибаться.

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

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

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

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

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

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

Любознательность. Здоровая доза любознательности может подогревать ваше стремление к экспериментированию и дальнейшему совершенст­вованию навыков программирования даже после прочтения настоящей книги. Благодаря любопытству изучение программирования окажется для вас менее скучным и более интересным. А если вам интересно, вы обязательно изучите и запомните больше сведений, чем любой абсо­лютно незаинтересованный в этом человек (например, ваш начальник).
Воображение. Создание компьютерных программ — это навык, но во­ображение поможет сделать этот навык более совершенным и направ­ленным. Обладающий изрядной долей воображения начинающий про­граммист всегда будет создавать намного более интересные и полезные программы, чем замечательный программист без воображения. Если вы не знаете, что же делать со своими навыками программирования, ваш талант просто погибнет без воображения.

Стремление, любознательность и воображение — вот три самых важных качества, которыми должен обладать каждый программист. Если вы обладаете ими, вам стоит беспокоиться только о мелочах: какой язык программирования изучать (например, C++), что там с математикой и т.д.

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

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

0010 1010 0001 1101

ООН 1100 1010 1111

0101 ОНО 1101 0101

1101 1111 0010 1001

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

Теперь мне бы хотелось разъяснить вам, что следует отличать язык программирования (Basic, Pascal) от его реализации, которая обычно представлена в составе среды программирования (Quick Basic, Virtual Pascal) — набора средств для редактирования исходных текстов, генерации исполняемого кода, отладки, управления проектами и т.д. Синтаксис и семантика языка программирования фиксируется в стандарте языка. Каждая среда программирования предоставляет свой интерпретатор или компилятор с этого языка, который зачастую допускает использование конструкций, не фиксированных в стандарте.

Рассмотрим основные и популярные языки программирования

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

Кобол — Язык программирования высокого уровня, разработанный в конце 1950-х гг. ассоциацией КАДАСИЛ для решения коммерческих и экономических задач. Отличается развитыми средствами работы с файлами. Поскольку команды программ, написанных на этом языке, активно используют обычную английскую лексику и синтаксис, Кобол рассматривается как один из самых простых языков программирования. В настоящее время используется для решения экономических, информационных и других задач.

Фортран — Язык программирования высокого уровня, разработанный фирмой IBM в 1956 г. для описания алгоритмов решения вычислительных задач. Относится к категории процедурно-ориентированных языков. Наиболее распространенными версиями этого языка являются Фортран IV, Фортран 77 и Фортран 90. Используется на всех классах ЭВМ. Последняя его версия также применяется на ЭВМ с параллельной архитектурой.

Ада — Язык программирования высокого уровня, ориентированный на применение в системах реального времени и предназначенный для автоматизации задач управления процессами и/или устройствами, например, в бортовых (корабельных, авиационных и др.) ЭВМ. Разработан по инициативе министерства обороны США в 1980-х гг. Назван в честь английского математика Ады Августы Байрон (Лавлейс), жившей в 1815-1851 гг.

BASIC (Beginner’s All-purpose Symbolic Instruction Code) Рожденный в 60-е годы в Америке. Бейсик был задуман как простой язык для быстрого освоения. Бейсик стал фактическим стандартом для МикроЭВМ именно благодаря своей простоте как в освоении так и в реализации. Однако для достижения этого качества был принят ряд решений (отсутствие типизации, нумерация строк и неструктурное GOTO, и др.), негативно сказывающихся на стиле изучающих программирование. Кроме того, недостаток выразительных средств привел к появлению огромного количества диалектов языка, не совместимых между собой. Современные, специализированные версии Бейсика (такие как Visual Basic) несмотря на приобретенную «структурность» обладают все теми же недостатками, прежде всего — небрежностью по отношению к типам и описаниям. Пригоден для использования на начальном этапе обучения, как средство автоматизации (в случаях когда он встроен в соответствующие системы) либо как средство для быстрого создания приложений.

Pascal Разработанный известным теоретиком Н.Виртом на основе идей Алгола-68, Паскаль предназначался прежде всего для обучения программированию. Построенный по принципу «необходимо и достаточно», он располагает строгим контролем типов, конструкциями для описания произвольных структур данных, небольшим, но достаточным набором операторов структурного программирования. К сожалению, обратной стороной простоты и строгости является громоздкость описаний конструкций языка. Наиболее известная реализация — Turbo/Borland Pascal — несмотря на отличия от стандарта Паскаля, представляет из себя среду и набор библиотек, сделавшие из учебного языка промышленную систему для разработки программ в среде MS-DOS.

C и C++ В основе языка C — требования системного программиста: полный и эффективный доступ ко всем ресурсам компьютера, средства программирования высокого уровня, переносимость программ между различными платформами и операционными системами. С++, сохраняя совместимость с C, вносит возможности объектно-ориентированного программирования, выражая идею класса (объекта) как определяемого пользователем типа. Благодаря перечисленным качествам, C/C++ занял позицию универсального языка для любых задач. Но его применение может стать неэффективным там, где требуется получить готовый к употреблению результат в кратчайшие сроки, либо там, где невыгодным становится сам процедурный подход.

Delphi — это не продолжатель дела Borland Pascal / Borland C, его ниша — т.е. быстрое создание приложений (Rapid Application Developing, RAD). Подобные средства позволяют в кратчайшие сроки создать рабочую программу из готовых компонентов, не растрачивая массу усилий на мелочи. Особое место в таких системах занимают возможности работы с базами данных.

Лисп — Алгоритмический язык, разработанный в 1960 г. Дж. Маккарти и предназначенный для манипулирования перечнями элементов данных. Используется преимущественно в университетских лабораториях США для решения задач, связанных с искусственным интеллектом. В Европе для работ по искусственному интеллекту предпочитают использовать Пролог.

Пролог — Язык программирования высокого уровня декларативного, предназначенный для разработки систем и программ искусственного интеллекта. Относится к категории языков пятого поколения. Был разработан в 1971 г. в университете г. Марсель (Франция), относится к числу широко используемых и постоянно развиваемых языков. Последняя его версия Prolog 6.0

ЛОГО — Язык программирования высокого уровня, разработан в Массачусетском технологическом институте в ориентировочно 1970 г. для целей обучения математическим понятиям. Используется также в школах и пользователями ПЭВМ при написании программ для создания чертежей на экране монитора и управления перьевым графопостроителем.

Java Как яркий пример специализации, язык Java появился в ответ на потребность в идеально переносимом языке, программы на котором эффективно исполняются на стороне клиента WWW. В ввиду специфики окружения, Java может быть хорошим выбором для системы, построенной на Internet/Intranet технологии.

Алгол — Язык программирования высокого уровня, ориентированный на описание алгоритмов решения вычислительных задач. Был создан в 1958 г. специалистами западно-европейских стран для научных исследований. Версия этого языка Алгол-60 была принята Международной конференцией в Париже (1960 г.) и широко использовалась на ЭВМ 2-го поколения. Версия Алгол-68, разработанная группой специалистов Международной федерации по обработке информации (ИФИП) в 1968 г., получила статус международного универсального языка программирования, ориентированного на решение не только вычислительных, но и информационных задач. Хотя в настоящее время Алгол практически не используется, он послужил основой или оказал существенное влияние на разработку более современных языков, например, Ада, Паскаль и др.

Самого лучшего языка не существует. Если вы собираетесь стать профессионалом в написании программ, вам необходимо изучить один из языков программирования высокого уровня (наиболее популярен язык программирования C++), а также один из языков программирования баз данных (например, SQL). Изучив язык программиро­вания C++, вы не ошибетесь. Зная этот язык, вы всегда сможете найти работу в любой компании, занимающей­ся программированием.
Несмотря на большую популярность языка программирования C++, часто исполь­зуются и другие языки. На многих устаревших компьютерах до сих пор работают программы, написанные на языке программирования COBOL. Поэтому нужны про­граммисты, которые умеют усовершенствовать данные программы, а также писать но­вые. Очень часто крупные компании выплачивают таким программистам высокую за­работную плату.
Если вы собираетесь работать самостоятельно, предпочтительнее всего научиться создавать собственные программы для баз данных. Для этого вам понадобится изучить такие языки программирования, как SQL или VBA, которые используются в програм­ме Microsoft Access. Для того чтобы создавать Web-страницы, необходимо знать HTML, а также немного знать Java, JavaScript, VBScript и другие языки программиро­вания для Internet. Самым нужным будет тот язык программирования, который по­зволит решить поставленные перед вами задачи легко и быстро. Это может быть язык программирования C++, BASIC, Java, SQL или язык ассемблера.

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

Желаю удачи в освоение программирования!

info-comp.ru

1. Основы алгоритмизации

126

КАФЕДРА ПРИКЛАДНОЙ МАТЕМАТИКИ

ОСНОВЫ ПРОГРАММИРОВАНИЯ

УЧЕБНОЕ ПОСОБИЕ ДЛЯ 1-ГО КУРСА

Оглавление

Оглавление 1

ОСНОВЫ ПРОГРАММИРОВАНИЯ 1

Введение 1

  1. ОСНОВЫ АЛГОРИТМИЗАЦИИ 4

2. ВВЕДЕНИЕ В ЯЗЫКИ ПРОГРАММИРОВАНИЯ 16

  3. ПРОГРАММИРОВАНИЕ НА ПАСКАЛЕ 21

4. МЕТОДЫ ПОСТРОЕНИЯ АЛГОРИТМОВ 89

СПИСОК ЛИТЕРАТУРЫ 125

ОСНОВЫ ПРОГРАММИРОВАНИЯ

Введение

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

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

По мере развития компьютерной техники развивались также и методика, и технология программирования. Сначала возникает командное и операторное программирование, в 1960-х гг. бурно развивается структурное программирование, появляются линии логического и функционального программирования, а в последнее время — объектно-ориентированное и визуальное программирование.

Задача, которую следует ставить при первоначальном изучении программирования, — освоение основ структурной методики программирования. Для указанной цели наиболее подходящим средством является язык программирования Паскаль. Автор языка Паскаль — швейцарский профессор Никлаус Вирт — создавал его именно для этого. Структурная методика остается основой программистской культуры. Не освоив ее, человек, взявшийся изучать программирование, не имеет никаких шансов стать профессионалом.

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

Желательным является знакомство с архитектурой ЭВМ на уровне машинных команд .Эти знания позволяют освоить основные понятия программирования, такие как переменная, присваивание; «входить в положение транслятора» и благодаря этому не делать ошибок, даже не помня каких-то деталей синтаксиса языка; предвидеть те «подводные камни», на которые может «напороться» ваша программа в процессе выполнения. По существу, все эти качества и отличают профессионального программиста от дилетанта.

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

Процесс изучения и практического освоения программирования делится на три части:

  • изучение методов построения алгоритмов;

  • изучение языка программирования;

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

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

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

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

1.1. Алгоритмы и величины

Этапы решения задачи на ЭВМ. Работа по решению любой задачи с использованием компьютера делится на следующие этапы:

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

  2. Формализация задачи.

  3. Построение алгоритма.

  4. Составление программы на языке программирования.

  5. Отладка и тестирование программы.

  6. Проведение расчетов и анализ полученных результатов.

Часто эту последовательность называют технологической цепочкой решения задачи на ЭВМ. Непосредственно к программированию в этом списке относятся пункты 3, 4, 5.

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

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

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

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

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

  • уметь строить алгоритмы;

  • знать языки программирования;

  • уметь работать в соответствующей системе программирования.

Основой программистской грамотности является развитое алгоритмическое мышление.

Понятие алгоритма. Одним из фундаментальных понятий в информатике является понятие алгоритма. Происхождение самого термина «алгоритм» связано с математикой. Это слово происходит от Algorithm! — латинского написания имени Мухаммеда аль-Хорезми (787—850), выдающегося математика средневекового Востока. В XII в. был выполнен латинский перевод его математического трактата, из которого европейцы узнали о десятичной позиционной системе счисления и правилах арифметики многозначных чисел. Именно эти правила в то время называли алгоритмами. Сложение, вычитание, умножение столбиком, деление уголком многозначных чисел — вот первые алгоритмы в математике. Правила алгебраических преобразований, способы вычислений корней уравнений также можно отнести к математическим алгоритмам.

В наше время понятие алгоритма трактуется шире. Алгоритм — это последовательность команд управления каким-либо исполнителем. В школьном курсе информатики с понятием алгоритма, с методами построения алгоритмов ученики знакомятся на примерах учебных исполнителей: Робота, Черепахи, Чертежника и т.д. Эти исполнители ничего не вычисляют. Они создают рисунки на экране, перемещаются в лабиринтах, перетаскивают предметы с места на место. Таких исполнителей принято называть исполнителями, работающими в обстановке.

В разделе информатики под названием «Программирование» изучаются методы программного управления работой ЭВМ. Следовательно, в качестве исполнителя выступает компьютер. Компьютер работает с величинами — различными информационными объектами: числами, символами, кодами и т. п. Поэтому алгоритмы, предназначенные для управления компьютером, принято называть алгоритмами работы с величинами.

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

Например, при решении квадратного уравнения ax2 + bx + с = 0 исходными данными являются коэффициенты а, b, с, результатами — корни уравнения х1, х2, промежуточным данным — дискриминант уравнения D = b2 — 4aс.

Для успешного освоения программирования необходимо усвоить следующее правило: всякая величина занимает свое определенное место в памяти ЭВМ (иногда говорят — ячейку памяти). Хотя термин «ячейка» с точки зрения архитектуры современных ЭВМ несколько устарел, однако в учебных целях его удобно использовать.

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

Константа — неизменная величина, и в алгоритме она представляется собственным значением, например: 15, 34.7, k, true и т.д. Переменные величины могут изменять свои значения в ходе выполнения программы и представляются символическими именами — идентификаторами, например: X, S2, codl5. Любая константа, как и переменная, занимает ячейку памяти, а значение этих величин определяется двоичным кодом в этой ячейке.

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

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

Таблица 1.1

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

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

ЭВМ — исполнитель алгоритмов. Как известно, всякий алгоритм (программа) составляется для конкретного исполнителя в рамках его системы команд. О каком же исполнителе идет речь при обсуждении вопроса о программировании для ЭВМ? Ответ очевиден: исполнителем является компьютер. Точнее говоря, исполнителем является комплекс ЭВМ + Система программирования (СП). Программист составляет программу на том языке, на который ориентирована СП. Иногда в литературе такой комплекс называют виртуальной ЭВМ. Например, компьютер с работающей системой программирования на Бэйсике называют Бэйсик-машиной; компьютер с работающей системой программирования на Паскале называют Паскаль-машиной и т.п. Схематически это изображено на рис. 2.

Входным языком такого исполнителя является язык программирования Паскаль.

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

studfile.net

Основы программирования

Как это работает?

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

Если вы собираетесь написать полноценную программу на таком языке как Visual Basic, C, C++ или Java, вы пишете, что называется на языке высокого уровня. Это язык, который создан, чтобы читать в легко понимаемом и удобно отформатированном виде, хотя это может и не показаться таковым первых порах для увлеченных Программирование для начинающих! При компиляции программы компилятор сначала проверяет, чтобы убедиться, что программа написана в соответствии со структурой и правилами языка. После т, ваша программа переводится в машинный код, который можно прочитать на компьютере. По сути, машинный код, то, что вы, возможно, видели, а называлось двоичным кодом: "00101101". Все, что вы напишете в программе переводится до базового уровня - наборы из нулей и единиц, что может быть понято до конца машиной (компьютером) - это основа программирования.

Если вы пишете на веб-скриптовом языке, который пользуется популярностью при веб-программировании, как HTML или PHP, процесс немного отличается. В конечном счете, вся программа по-прежнему разбивается на машинный код, так что процессор может его интерпретировать, не смотря на то, что вы создаете сценарий, а не программу, составленную на полноценном языке программирования. Скрипт запускается через специальную программу , которая называется транслятором , а результат выводится на экрана браузера. Такие сценарии (наборы команд) компилируются только по запросу браузера..

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

Есть два основных процесса проектирования программ используемых сегодня: Функциональный (алгоритмический) и объектно-ориентированный:

Функциональный дизайн программы был стандартным на протяжении многих лет, и даже сегодня многие вещи можно выполнить с помощью простого функционального подхода. Функциональный подход можно рассматривать таким образом: Хорошо, у меня есть данные; делаю шаг 1; ладно, теперь делаю шаг 2; теперь я должен ли я перейти к шагу 3 или 4?; ладно, переходим к шагу 4. Снова и снова, пока выполнение программы будет завершено. Звучит логично, да? Я думаю так легче всего понять что такое программирование.

Функциональному программированию противопоставляют объектно-ориентированное программирование (ООП), оно считается новой парадигмой в разработке программ. C++ и Java являются наиболее ориентированными на ООП языками, хотя вы все еще можете использовать их в качестве функциональных языков программирования. Я не думаю, что изучение объектно-ориентированного дизайна должно стать приоритетной задачей для изучающих программирование для начинающих. Этот сайт предназначен для вас, тех, кто хочет идти без путаницы. ООП, откровенно говоря, довольно быстро запутывает новичка. После того как новичок понимает функциональное программирование и как оно работает, то, возможно, может начинать изучать ООП и пользоваться его благами. Откровенно говоря, большинству людей никогда не понадобится ООП, чтобы выполнить то, что они хотят. Если у вас есть любознательность, или карьерная необходимость, вы будете держать курс на объектно-ориентированного программирования, в противном случае он будет просто затягягивать появление ваши успехов в написании рабочих программ, которые станут полезными для вас как начинающего в программировании. Если так можно выразиться, то ООП (при хорошем изучении и использовании) позволяет разрабатывать более «элегантный» дизайн и увеличивать полезность своей программы для программистов (не для новичков!). Когда вы начнете переходить к написанию более сложных программ , то вероятно на вашем пути появится ООП. Независимо от того, что скажут снобы или прошедшие путь программирования, можно утверждать, что хорошую карьеру программиста можно сделать, не касаясь темы объектно-ориентированного программирования.

С чего начать?

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

Написание программы распадается на отдельные инструкции, которые должны переводиться компилятором на язык машинных инструкций и выполняться шаг за шагом. Вашим первым шагом при написании программы должно стать выяснение, что вы хотите получить в виде пошаговых действий. Целесообразно это сделать на обычной бумаге (часто называется «псевдокодом»). Как только вы немного попрактикуетесь в этом, то увидите какую ценность представляет данный способ, однако не стоит сейчас об этом сильно беспокоится. Имейте в виду, что когда вы пишете большие программы на 10, 20 или даже 100 шагов и/или функций доступные в рамках программы или пользователя, то отображение схемы на бумаге станет для вас бесценным инструментом. Один имеющийся у вас шаг мы осветили , вам нужно будет написать программу на языке, который вы выбрали. Независимо от языка программирования, который вы выбрали, он будет иметь конкретные слова и стиль для создания программ. Многое для вас в программировании для начинающих будет знакомо, например, мы используем слова, знаки препинания каждый день, этот же принцип присущ программированию, поэтому делать программы будет нетрудно. Хорошая новость заключается в том, что на самом деле у вас не займет много времени знакомство с языком и стилем. Плохая новость заключается в том, что языки сильно различаются степенью многословия и пунктуации! Но не беспокойтесь об этом. На данный момент ваша главная цель овладеть языком, который является наиболее интересным для вас в рамках основ программирования.

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

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


Как стать экспертом по разработке сайтов, разработчиком игр или приложений для ПК и Андроид? Эксклюзивные курсы с гарантированным трудоустройством!

   

Как стать профессионалом по разработке сайтов и начать зарабатывать? Недорогие видео курсы с ознакомительным введением.

                  

www.progaprosto.ru

Программирование для начинающих и чайников. Основы и обучение программированию

Программирование - для тех, кого интересует выбор престижной и высокооплачиваемой профессии! Выбирайте прогрраммирование, если легкий интеллектуальный труд предпочитаете рутинной работе и физическому изнурению!
Что такое программирование? С чего начать? Какой язык лучше? Ответы на эти вопросы и примеры программ вы найдете здесь!

Программирование для начинающих. Программирование для чайников.

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

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

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

  • Что такое программирование?
  • Что такое язык программирования?
  • Какие языки существуют?
  • Какой язык лучше выбрать для начинающего, чтобы простой был и мне подходил?
  • Какие минимальный знания нужны для того, чтобы начать обучение?
  • С чего начать и что почитать чайнику?
  • Как стать высокооплачиваемым программистом?

Выбор языка программирования.

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

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


Язык C++. Этот язык захватил пальму первенства по количеству приверженцев среди программистов и не зря. Ведь он является преемником языка Си - огромного количества наработок, готовых библиотек и примеров. Огромный плюс для чайников - это кросс-платформенность. Можно создавать программы любой сложности для Windows, Linux и MacOS.

Язык Delphi. Великолепный язык с отличной средой программирования для начинающих. Позволяет в кратчайшие сроки разрабатывать программы средней степени сложности и сопровождать их в дальнейшем. В основном пишутся приложения для Windows, хотя есть полный набор инструментов для ОС Linux.

Язык Visual Basic. Преемник языка Basic, который позволяет воплощать в жизнь любой сложности проекты, создавая при этом визуальные интерфейсы с поразительной простотой - отличный выбор для обучения. А вот о кросс-платформенности можно забыть, программирование приложений ограничена ОС Windows.

Обучение программированию.

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


Как стать экспертом по разработке сайтов, разработчиком игр или приложений для ПК и Андроид? Эксклюзивные курсы с гарантированным трудоустройством!

   

Как стать профессионалом по разработке сайтов и начать зарабатывать? Недорогие видео курсы с ознакомительным введением.

                  

www.progaprosto.ru

Что такое программирование? Языки программирования. Компьютерное программирование :: SYL.ru

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

Что такое программирование в общем понимании?

Если посмотреть на основные трактовки данного термина, нетрудно сделать простейший вывод. Что такое программирование? Это написание программ.

что такое программирование

Тут же возникает вопрос того, что же такое программа. Программа или приложение – это, грубо говоря, набор специализированных команд, инструкций, директив или исполняемых сценариев, которые подлежат исполнению машиной, причем на уровне и «железных» устройств, и других задействованных средств.

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

Немного истории

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

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

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

Только в 1804 году свет увидел жаккардовый ткацкий станок, который был способен воспроизводить узоры на тканях, созданные на основе перфокарт.

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

языки программирования

Зато в 1846 году дочь Байрона создала первую в мире программу для аналитической машины, которая решила уравнение Бернулли. Конечно, алгоритмы программирования, которые применяла графиня Ада Августа Лавлейс, были весьма примитивными, но именно они заложили то самое зерно, которое было использовано при создании современных компьютерных программ. И именно ее считают во всем мире прародительницей программирования.

Каким образом компьютер воспринимает команды?

Любая компьютерная программа должна машиной каким-то образом выполняться. Ей мало написать, мол, сделай то-то и то-то. Для этого были созданы языки программирования.

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

курсы программирования

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

Мнемокоды

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

алгоритмы программирования

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

Понятие переменных

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

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

Языки программирования

Сами же языковые средства, на которых пишутся (или в свое время писались) компьютерные программы, условно можно разделить на низко- и высокоуровневые.

программирование на java

Если кто из старшего поколения помнит, даже в советские времена в школах на уроках информатики преподавался язык Basic. С его помощью на тогдашних машинах Yamaha КУВТ можно было создавать примитивные программы математических вычислений, программировать простейшие картинки или музыку, звучащую из системного динамика. Для математики можно было использовать и логические операторы вроде «если», «то», «иначе». Но проблема всех тех, кто хорошенько обучился этому языку, состояла в том, что они никак не могли освоить новые средства.

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

программирование для чайников

К ООП смело можно отнести язык C+/++, на основе команд которого созданы те же операционные системы Windows. Программирование на «Си» является достаточно сложным, тем не менее при желании можно освоить и его. Как говорится, было бы желание. Можно пойти на те же курсы программирования или использовать для обучения соответствующую литературу. Правда, как считает большинство специалистов, самому вникнуть в основы языка еще можно, а вот развивать свои знания на практике буде крайне сложно. Тут никакие труды вроде книг «Программирование для чайников» не помогут.

Но вернемся к языкам. Относительно недавно появились языки, работающие на основе интерпретаторов (.NET Framework, Python, Java, Perl и т.д.). В них вместо машинного кода генерируется особый байт-код, который представляет собой двоичный код виртуальной машины.

компьютерное программирование

Кстати сказать, программирование на Java можно без особых усилий освоить самому. Например, для мобильных устройств на основе Android-систем можно параллельно использовать Android Studio и пакет Java SDK, а в качестве тестировщика установить Genymotion. Можно поступить еще проще, обратившись к онлайн-конструктору App Inventor, в котором создание последовательности команд производится наподобие складывания пазлов.

Понятие парадигм

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

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

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

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

И хотя, как считается, язык C+/++ является доминирующим, не стоит сбрасывать со счетов и Ассемблер. Удивительно, но большинство вирусов написано именно на нем. А если взять в расчет веб-программирование, скажем, на основе Delphi, тут вообще открываются такие широкие возможности и перспективы, что многие начинающие программисты об этом даже не догадываются.

Можно ли самому научиться программированию?

Вопросы, связанные с самостоятельным обучением, напрямую зависят от того, чему именно хочется научиться. Литература в виде книг «Программирование для чайников» дает лишь частичные ответы без конкретизации основных аспектов с учетом применения того или иного языка. Это, так сказать, для общего понимания. Курсы программирования – тоже вопрос спорный, ведь в данном случае все зависит не только от восприятия обучаемым, но и от того, какими знаниями обладает преподаватель, как он подает материал и т.д. Но если уж возникла необходимость изучения какого-то определенного языка или метода программирования, в наш век интернета проблемой это не является. Можно найти даже онлайн-курсы или подробное описание уроков по той же платформе Java, программированию Android- или iOS-устройств.

Краткие итоги

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

www.syl.ru

Отправить ответ

avatar
  Подписаться  
Уведомление о