Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций по курсу 'Информатика'.doc
Скачиваний:
4
Добавлен:
14.07.2019
Размер:
483.84 Кб
Скачать

47

КОНСПЕКТ ЛЕКЦИЙ ПО КУРСУ «ИНФОРМАТИКА».

ИСТОРИЯ РАЗВИТИЯ ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ (ВТ).

Придумывать машины и механизмы, помогающие производить вычисления, ученые начали давно, в 1641 году Паскаль создал первую вычислительную машину, которая могла производить все четыре арифметические операции. В 1833 году Ч. Беббидж разработал вычислительный механизм, хранивший до 1000 чисел по 50 знаков каждое. Ассистенткой Беббиджа была Ада Лора Ловлейс, дочь Байрона, первая женщина программист, в честь нее и назвали известный язык программирования АДА. В середине прошлого века широко распространены были арифмометры, механические вычислительные устройства. Но все эти устройства назвать компьютерами еще было нельзя.

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

Так в 50-е годе ХХ века появились вычислительные машины

I – поколения - ламповые машины.

Вычислительная машина была размером с дом, вся состояла из стеклянных электронных ламп, и осуществляла явно идею 0 – « нет сигнала», лампа выключена, 1 – «есть сигнал» лампа горит. Такая ВТ больше грела пространство, чем производила вычисления. Никаких языков программирования еще не было, работали только в машинных кодах.

Совершенствовалась элементная база, появились транзисторы.

II – поколение – транзисторные машины.

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

III – поколение – интегральные схемы.

С этого поколения началось наше безнадежное отставание от американской ВТ, так было принято решение не развивать наши уникальные разработки, а скопировать сделанную в США машину IBM, а копия, как известно, хуже оригинала и очень отстает от него во времени. В результате получили вычислительные машины серии ЕС. Это поколение дало огромный толчок развитию языков программирования высокого уровня, таких как FORTRAN, PASCAL, а далее и С.

Современное поколение ВТ

IV – поколение – БИСы (большие интегральные схемы).

ВТ сегодня разделилось на два полюса - персональный компьютер и СУПЕРЭВМ. Первое направление буквально заполонило мир. Без второго направления не может развиваться наука, космические, ядерные исследования и метеорология. Принципиального различия в элементной базе нет, есть ее постоянное совершенствование. Колоссальное увеличение быстродействия и объемов оперативной памяти. От языков высокого уровня перешли к операционным системам типа WINDOWS, что перестраивает большую армию программистов в еще большую армию пользователей. Наша страна превратилась в крупнейшего импортера ВТ и потребителя программного продукта.

Будущее поколение ВТ

V – поколение - интеллектуальные машины.

Ведутся разработки, как в США, так и в Японии.

СИСТЕМЫ СЧИСЛЕНИЯ.

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

ТАБЛИЦА ЧИСЕЛ В РАЗЛИЧНЫХ СИСТЕМАХ СЧИСЛЕНИЯ.

десятичная

восьмеричная

шестнадцатиричная

двоичная

0

0

0

0

1

1

1

1

2

2

2

10

3

3

3

11

4

4

4

100

5

5

5

101

6

6

6

110

7

7

7

111

8

10

8

1000

9

11

9

1001

10

12

A

1010

11

13

B

1011

12

14

C

1100

13

15

D

1101

14

16

E

1110

15

17

F

1111

16

20

10

10000

17

21

11

10001

18

22

12

10010

19

23

13

10011

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

Рассмотрим на примере, возьмем число 59 и переведем его во все системы счисления.

59 |_2_

58 29 |_2_

1 28 14 |_2_

1 14 7 |_2_

0 6 3 |_2_

1 2 1

1

59 |16

48 3

11

59 |_8

56 7

3

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

= = =

Проверим правильность перевода:

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

111 | 011 11 | 1011

7 3 3 В

Алгоритм.

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

Алгоритм кипячения чайника.

  1. Налить в чайник воды.

  2. Поставить на включенную плиту.

  3. Если закипел, то выключить и снять с плиты.

Иначе ждать пока закипит.

Алгоритм решения квадратного уравнения.

  1. Ввести a, b, c.

  2. Вычислить D= .

  3. Если D>=0 , то вычислить , .

Иначе «нет действительных корней».

Такое представление алгоритма очень близко к записи на языке программирования.

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

ЛОГИЧЕСКАЯ СХЕМА ЭВМ.

Любой современный компьютер имеет ОП – оперативную память, ЦП – центральный процессор, ВП – внешнюю память и У В/В – устройства ввода вывода.

ОП – хранит информацию в процессе выполнения задачи.

ЦП – выполняет действия.

ВП – долговременно хранит информацию (жесткие диски, гибкие диски).

У В/В – сервисные устройства для ввода и вывода информации ( клавиатура, монитор, принтер).

СТРУКТУРА ПАМЯТИ.

Наименьшая единица памяти 1 бит – один двоичный разряд.

8 бит=1Б (байт) самая маленькая единица обмена памяти, которую можно достать.

1 ячейка (машинное слово) – 4Б для 32-х разрядного компьютера.

- 2Б для 16-ти разрядного компьютера.

Память ЭВМ можно представить как вытянутую в ленту последовательность ячеек, перенумерованных подряд. Каждый байт имеет свой адрес. В памяти хранятся программы и данные. Объем ОП измеряется в КБ (килобайтах) и МБ (мегабайтах).

1КБ=1024Б

1МБ=1024КБ

ВИДЫ И ТИПЫ ДАННЫХ.

Виды данных – константы, переменные, структуры данных ( массивы, списки, структуры).

Константачасть памяти, иногда именованная, не изменяющая свое значение.

Переменнаяименованная часть памяти способная изменять свое значение.

Любая переменная имеет кроме имени еще и адрес.

Имя переменнойлюбая последовательность символов (латинских букв, цифр и подчерка), первая обязательно буква. Причем различаются только первые 8 символов.

Примеры правильных имен переменных: adc a11 Get Key a_a.

Венгерская анатация – правило, по которому переменная содержит префикс, определяющий ее тип.

Примеры: cname – имя класса.

Тип переменной определяет ее внутреннее представление в памяти.

ТАБЛИЦА ОСНОВНЫХ ТИПОВ ДАННЫХ.

Ключевое слово

Тип

Внутреннее представление

Длина

Int

Long

Short

Unsigned

Char

Float

Double

Целый

Целый длинный

Целый короткий

Целый без знака

Текстовый или символьный

Вещественный

Вещественный длинный

0 32

+

10100010011

01010101110101

0 7

+

мантисса

+

порядок

Описание типов переменных производится с помощью оператора описания типа:

int a, b ;

char tt ;

Тип явно указанных констант определяется по их записи:

5 -273 2Е10 - целые константы, последняя означает , если к записи константы добавляется символ L, то она целая длинная. Например 123567L.

В записи вещественных констант присутствует «точка» - 5.012 134.99 -5.5Е-12, последняя означает - .

Восьмеричные константы всегда начинаются с 0 – 0537, шестнадцатиричные начинаются с 0х – 0х12FE1. Текстовые константы изображаются явно в апострофах – ‘s’ ‘1’.

ОПЕРАТОРЫ ЯЗЫКА С.

Программа состоит из операторов, в конце каждого оператора ставится точка с запятой. Cложный оператор – последовательность операторов, заключенная в фигурные скобки {}.

ОПЕРАТОР ПРИСВАИВАНИЯ.

Общий вид оператора присваивания а=в ; где а – переменная или элемент массива, в – выражение. Оператор присваивания работает строго справа на лево, то есть вычисляется выражение справа и его значение присваивается переменной стоящей слева. На пример

А=250 ;

m=2+3/b ;

d=m=b+s ;

Выражения справа состоят из операндов – переменные и константы и операций.

Операции:

+ - сложение,

- - вычитание,

* - умножение,

/ - деление,

% - взятие остатка ( только для целых),

++ - увеличение на единицу,

-- - уменьшение на единицу,

(тип) – преобразование типа.

Операция деления для объектов целого и вещественного типа производится по разному.

int f ; float s ;

f=10/3 ; s= 10./3. ;

переменная f будет равна 3, а переменная s – 3.333, то есть в первом случае остаток будет отброшен. При целочисленном делении нужно быть очень осторожным, так как 1/3 даст 0, остаток отбросится, целое число не может стать дробным.

Оператор i=i+1 ; можно записать короче i++ ;

В языке С принята укороченная запись операторов переприсваивания:

a=a+i ; a+=i ;

a=a-i ; a-=i ;

a=a*i ; a*=i ;

a=a/i ; a/=i ;

Рассмотрим решение задачи – задано двухзначное число, получить его цифры.

int a=57, b, c ;

b=a/10 ; // старшая цифра числа а.

c=a%10 ; // младшая цифра числа а.

Комментарии в языке C пишутся двумя способами:

// любой текст до конца строки, не будет восприниматься транслятором.

/* любые слова на произвольное

количество строк, не воспринимаются транслятором

до следующей */

УСЛОВНЫЙ ОПЕРАТОР.

Для записи условия используются операции отношения:

== проверка равенства;

!= не равны;

> больше;

< меньше;

>= больше и равно;

<= меньше и равно.

Значение логического выражения ИСТИНА или ЛОЖЬ.

Логические выражения можно объединять используя логические связки && логичесое И, || логическое ИЛИ. Логическое выражение, объединенное связкой || истино, когда истино хотя бы одно из выражений. Логическое выражение, объединенное связкой && истино, когда истино каждое из логических выражений. Например, математическая запись a<b<c, запишется

(a<b)&&(b<c).

Общий вид сокращенного условного оператора:

if( условие) оператор ;

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

if (a>0) b=10 ; Если а положительное b будет присвоено 10.

Общий вид полного условного оператора:

if ( условие) оператор1 ;

else оператор2 ;

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

Рассмотрим пример:

Записать фрагмент программы на языке С можно несколькими различными способами.

Самый простой:

if (x<=a) x=a ;

if ( x>=b) x=b ;

if ( (a<x)&&(x<b)) x=0 ;

еще один способ:

if (x<= a) x=a ;

else if ( x>=b) x=b ;

else x=0 ;

Наиболее интересен такой способ:

x=0 ;

if (x<=a) x=a ;

if (x>=b) x=b ;

Внимание: при неправильной записи условия не будет сообщения об ошибке, а и d не будут сравниваться.

If( a=d) b=10 ; должно быть так if ( a==d) b=10 ;

При сравнении с нулем можно не писать знаки сравнения:

If (a) b=0 ; Что означает, если а равно 0, то b присвоить 0. Используя это свойство, можно писать всегда истинные, (любое не нулевое выражение в скобках), или всегда ложные условные операторы.

If ( -100) a=100; всегда истина, все равно, что написать а=100 ;

If ( 0) a=100 ; всегда ложь, а=100 никогда не присвоится.

Рассмотрим еще несколько примеров с использованием условного оператора.

Задано целое число, определить делится ли оно на 5.

int a ;

Ввод а ;

if (a%5==0) вывод «число делится на 5» ;

еlse вывод « число не делится на 5» ;

Из трех заданных чисел определить максимальное.

Int a, b, c, max ;

Ввод a, b, c ;

max=a ;

if (b>max) max=b ;

if (c>max) max=c ;

вывод max ;

без ввода дополнительной переменной max алгоритм будет менее наглядным и более трудным.

int a, b, c ;

Ввод a, b, c ;

if ((a>=b)&&(a>=c)) вывод а ;

if ((b>=a)&&(b>=c)) вывод b ;

if ((c>=a)&&(c>=b)) вывод с ;

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