Основы программирования #3.1 Парадигмы программирования

Прочитал пост и решил написать свою точку зрения.

источник
Из доклада прозвучал тезис типа ООП это тоже самое что и СП но сложнее. Категорический не согласен с этим.
Я решил перечислить свои ключевые моменты по каждой из парадигм:

  • Императивное программирование
    • оперируем состоянием и инструкциями
    • языки: ассемблер, Fortran, Cobol, C,C++ и тд

Пример кода

   a = 12.0
   b = 15.0
   result = a + b
   print *, 'The total is ', result  
  • Структурное программирование
    • оперируем состоянием и инструкциями
    • блока - составная инструкция
    • ветвления - условия если то иначе
    • цикл -повторение одного блока N раз
    • языки: Fortran, Pascal и C.

      Пример кода
PROGRAM Simple;
VAR
    k : integer;
BEGIN
   k := 1;
   while k <= 100 do
   begin
      writeln (k);
      k := k + 1;
   end;
   writeln (k);
END.
  • Процедурное программирование
    • процедура (дочь блока) которая может принимать параметры и возвращать параметр. Процедура обычно независимая операция и выполняется как одна большая инструкция.
    • декомпозиция - разбивать большую задачу на простые
    • языки: C, C++, Pascal, Object Pascal

Пример кода

PROGRAM Simple;
VAR
  a, b, c: integer;
 
procedure sum(x, y: integer; var z: integer);
BEGIN
  z := x + y;
END;
 
BEGIN
  write('Введите 2 числа: ');
  readln(a, b);
  sum(a, b, c);
  writeln(c);
END.
  • Объектно-ориентированное программирование.
    • Объект - сущность, с определенным набором состояний, предоставляющая набор операций, по изменению этих состояний.
    • инкапсуляция механизм сокрытия операций над объектом
    • наследование механизм позволяет переиспользовать базовые свойства объекта(лучше не использовать)
    • полиморфизм - механизм позволяет объединить управление над объектами.
    • делегирование - объект что бы предоставить функции использует другой объект.
    • пространство имен (namespace);
    • языки: Java C#

Пример кода

public class Switch implements Serializable, Node {
    /**
     * Состояние коммутатора "работает" (1)
     */
    public static final int STATE_WORKS = 1;
    /**
     * Состояние коммутатора "не работает" (0)
     */
    public static final int STATE_NOT_WORKS = 0;

    /**
     * Имя коммутатора
     */
    private String name;

    /**
     * IP коммутатора (строка)
     */
    private String ipAddress;

    /**
     * Состояние коммутатора.
     * 
     * @see #STATE_WORKS
     * @see #STATE_NOT_WORKS
     */
    private Integer state;

    public Switch() {
    }


    /**
     * Состояние коммутатора.
     */
    public Integer getState() {
        return state;
    }

    public void setState(Integer state) {
        this.state = state;
    }

    /**
     * @return название коммутатора
     */
    public String getName() {
        return name;
    }
}

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

программированиеобучениеработаобразование
31
3.492 GOLOS
0
В избранное
onixred
На Golos с 2016 M12
31
0

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

Авторы получают вознаграждение, когда пользователи голосуют за их посты. Голосующие читатели также получают вознаграждение за свои голоса.

Зарегистрироваться
Комментарии (8)
Сортировать по:
Сначала старые