четверг, 27 октября 2011 г.

ТТП, лекция 7.

Лекция 7. Массивы

Массив – структура данных, которая представляет собой совокупность (набор) переменных одинакового типа.

Объявление массива

Имя: array[ВерхнийИндекс .. НижнийИндекс] as Тип;

Примеры объявления массивов:
a: array[1..20] of integer; { массив целых чисел }
b: array[1..5] of real;     { массив дробных чисел }
Name:array[1..25] of string[20]; { массив строк }

КоличествоЭлементов = НижнийИндекс- ВерхнийИндекс+1

При объявлении массивов удобно использовать именованные константы
const
     N =18;
var
     team: array[1 .. N] of string[25];

Доступ к элементам массива

При обращении к элементу массива указывается номер (индекс) нужного элемента.
Массив[индекс] , где индекс - выражение целого типа.

a[1] := 5;
a[i] := 0;
team[1] := ”Зенит
sum := sum + a[i];

Ввод массива

const
    N=5;
var
    a:array[1.. N] of integer;
    i: integer;
begin
    for i:=1 to N do
        begin
            write('a[,i,']>');
            readln(a[i]);
        end;
end; 

Вывод массива

{ вывод элементов в одной строке}
const
    N=5;
var
    a:array[1 .. N] of integer;
    i: integer;
begin

    { здесь инструкции ввода массива}
  
    { вывод массива }
    for i:=1 to N-1 do
        begin
            write('a[,i,']>');
        end;
    writeln(a[N]);

end; 

Обработка массива


Пример - вычисление среднего арифметического

const
    N=5;
var
    a:array[1.. N] of integer;
    i: integer;
    s: integer;
    m: real;
begin

     { здесь ввод массива }

     { вычислить сумму элементов } 
     for i:=1 to N do
        begin
             s:=s+a[i];
        end;

     m:= s/N;

     writeln('Сумма эл-тов массива: ', s);
     writeln('Кол-во элементов:', N);
     writeln('Среднее арифметическое: ', m:6:2);

end; 

ТТП, лекция 6

Лекция 6. Циклы

Цикл For


for СЧ:= НЗ to КЗ do
    begin
        { здесь инструкции - "тело" цикла}
    end;

СЧ – переменная целого типа;
НЗ, КЗ – выражение целого типа:

После выполнения инструкций цикла переменная-счетчик увеличивается на единицу автоматически.

{ таблица значений функции }
var
    x1,x2, dx: real;
    x,y: real;
    i,n : integer;
begin
    write('x1>');
    readln(x1);
    write('x2>');
    readln(x2);
   write('dx>');
    readln(dx);

    n:= Round((x2-x1)/dx);
    x := x1;

    for i:=1 to n do
        begin
            y := x*x -2.5x +0.5;
            writeln(x:5:2, '  ', y:6:2);
            x:= x + dx;
        end;

    write('Press <Enter>');
    readln;
end.

Цикл repeat


repeat
    { здесь инструкции - "тело" цикла}
until  Условие_завершения:

{ таблица значений функции }
var
    x1,x2, dx: real;
    x,y: real;
begin
    write('x1>');
    readln(x1);
    write('x2>');
    readln(x2);
   write('dx>');
    readln(dx);

    x := x1;

    repeat
            y := x*x -2.5x +0.5;
            writeln(x:5:2, '  ', y:6:2);
            x:= x + dx;
    until (x >x2);
  
    write('Press <Enter>');
    readln;
end.


Цикл While


while Условие_выполнения do
    begin
        { здесь инструкции - "тело" цикла }
    end;

var
    x1,x2, dx: real;
    x,y: real;
begin
    write('x1>');
    readln(x1);
    write('x2>');
    readln(x2);
   write('dx>');
    readln(dx);

    x := x1;

    while (x <= x2) do
        begin
            y := x*x -2.5x +0.5;
            writeln(x:5:2, '  ', y:6:2);
            x:= x + dx;
        end;
  
    write('Press <Enter>');
    readln;
end.

Контрольные вопросы

  1. Какого типа должна быть переменная-счетчик цикла for?
  2. После while записывается условие выполнения или завершения инструкций цикла?
  3. После until записывается условие повторного выполнения или завершения инструкций цикла?
  4. Возможна ли ситуация, при которой инструкции цикла for не будут выполнены ни одного раза?
  5. В каком случае инструкции цикла while не будут выполнены ни одного раза?

среда, 12 октября 2011 г.

ТТП, Лекция 5

Лекция 5

Вывод

Вывод информации на экран выполняют инструкции write и writeln

write(Переменная|Строкова_ константа)
write(Переменная:Формат)

Примеры
writeln(r);
writeln(r:6:2)

Инструкция присваивания

Имя_переменной := Выражение;

Выражение

Выражение состоит из операндов и операторов.
Оператор – действие, операнд – объект, над которым выполняется действие.


Оператор
Действие
+
Сложение
-
Вычитание
*
Умножение
/
Деление
Div
Деление нацело
Mod
Вычисление остатка от деления


Тип выражения определяется типом операндов, входящих в выражение, и действием, выполняемым над операндами.

При несоответствии типа выражения типу переменной, компилятор выводит сообщение:  Type mismatch.

Условие

Условие – выражение логического типа, которое может принимать одно из двух значений True или False.
При записи алгоритма условие следует формулировать в виде вопроса, ответить на который можно только «да» или «нет».

Простое условие

Операнд1 ОператорСравнения Операнд2


Оператор
Описание
>
Больше
<
Меньше
=
Равно
<>
Не равно
>=
Больше или равно
<=
Меньше или равно

Сложное условие

Сложное условие составляется из простых, путем применения к последним логических операций OR (или, логическое сложение), AND (и, логическое умножение), NOT (инверсия, отрицание).


Op1
Op2
Op1 and Оp2
Op1 or Op2
not Op1
FALSE
FALSE
FALSE
FALSE
TRUE
FALSE
TRUE
FALSE
TRUE
TRUE
TRUE
FALSE
FALSE
TRUE
FALSE
TRUE
TRUE
TRUE
TRUE
FALSE


Приоритет логических операторов: NOT, AND, OR

Инструкция if

Алгоритмической структуре ВЫБОР соответствует инструкция if, которая используется в программе для выбора одного из двух возможных вариантов дальнейшего развития процесса решения задачи.
В общем виде инструкция if записывается так:
if условие then
     begin

    end
else
    begin

    end;

Частным случаем инструкции if-then-else является инструкция if-then

if условие then
     begin

     end;

Множественный выбор

Множественный выбор может быть реализован при помощи вложенных одна в другую инструкций if или при помощи инструкции case.

Вложенный if
if условие1
     then  действие1
   else
       if условие2
           then действие2
           else действие3   

Инструкция case


      Case селектор of
          K1: begin

              end;
          K2: begin

              end;

          K: begin

             end;;
         else: begin

               end;;
      end;
Селектор – выражение (переменная) перечисляемого (integer, char) типа.
Ki – константа, список констант или диапазон.

среда, 5 октября 2011 г.

ТТП, лекция 4

Лекция 4

Структура программы


program имя;
var
            { здесь объявления переменных }
begin
            { здесь инструкции }
end.

program p1;
var
    r1,r2: real; { сопротивления}
    t: integer;  { способ соединения: 1 – посл; 2 – парал. }
    r: real;     { сопротивление цепи }
begin
    write('r1>');
    readln(r1);
    write('r2>');
    readln(r2);
    write('t>');
    readln(t);

    if (t =1) then
       begin
           r := r1 + r2;
       end
    else
       begin
           r := (r1 + r2)/(r1*r2);
       end;

    writeln('r1=',r1:6:2, ' Ом');
    writeln('r2=',r2:6:2, ' Ом');
    writeln('t=',t);
    writeln('r=',r:6:2, ' Ом');

    writeln;
    writeln('To exit press <Enter>');
    readln;

end.


Переменная


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

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

Типы данных

  • целый
  • вещественный
  • символьный
  • строковый
  • логический

Основные типы данныхTurbo Pascal:
  • Integer (целый)
  • Real (вещественный или дробный)
  • Char (символьный)
  • String (строковый)
  • Boolean (логический)

Целые числа:

Тип
Диапазон
Байт
byte
0 … 255
1
word
0..65536
2
shortint
-128 … 127
1
integer
-32768 … +32767
2
longint
-2 147 483 648 … 2 147 483 647
4


Дробные числа:

Тип
Диапазон
Знаков
Байт
real
2.9e-39 …1.7e38
11-12
6
single
1.5e-45 … 3.4e38
7-8
4
double
5.0e-324 … 1.7e308
15-16
8
extended
3.4e-4932.. 1.1e4932
19-20
10


Char – каждому символу соответствует число – код. Char – один байт.

Символы
Коды (десятичные)
0-9
40-57
A,B,C, …Z
65-90
A,b,c, ..z
97-122
А,Б,И,Г …Я,а,б,в, …п
128 – 175
Р,с,т, …я
224 – 239


Srting – последовательность символов. В Pascal количество символов строки ограничено 255.

Boolean – логический тип. Элемент данных логического типа может принимать только одно из двух значений – True (истина) или False (ложь).

Объявление переменных


имя: тип;

r: real;
x1,x2: real;
i: integer;
nRow: integer;
name: string;
FirstName: string;
c: char;

Ввод данных

Ввод данных с клавиатуры обеспечивает инструкция readln.

reaadln(переменная);

readln(r1);
readln(sum);
readln(k);
readln(FirstName);

Контрольные вопросы

  1. Перечислите разделы простой программы.
  2. Перечислите основные типы данных Turbo Pascal.
  3. Составьте список переменных (запишите инструкции объявления), необходимых в программе вычисления тока в цепи, состоящей из двух сопротивлений, которые могут быть соединены последовательно или параллельно.