воскресенье, 20 ноября 2011 г.

Модуль 3, задание 6

Program INTEGRAL; - название программы
type - раздел описания типов
Func= function(x: Real): Real; - функциональный тип, определяется как заголовок функции, со списком формальных параметров, но без имени
var - секция объявления переменных
I,TN,TK:Real; - переменные вещественного типа
N:Integer; - переменная целого типа
{$F+} - ключ режима дальней адресации, в котором компилируются функции, имена которых будут передаваться как фактические параметры.
Function Q(t: Real): Real; - название функции, в которой t имеет вещественный тип
begin - начало описания функции

Q:=2*t/Sqrt(1-Sin(2*t)); - сама функция
end; - конец описания функции
{$F-} - ключ завершения режима дальней адресации
Procedure Simps(F:Func; a,b:Real; N:Integer; var INT:Real); - процедурный тип, вычисление определенного интеграла по методу Симпсона, где A и B - нижняя и верхняя границы интервала интегрирования (переменные вещественного типа), N - число разбиений интервала интегрирования (переменная целого типа).
var - секция объявления переменных
sum, h: Real; - сумма и переменная h - вещественного типа
j:Integer; - j - переменная целого типа
begin - начало вычисления
if Odd(N) then N:=N+1; - Если функция N - нечетное, тогда выполняем N:=N+1
h:=(b-a)/N; - значение h=(b-a)/N
sum:=0.5*(F(a)+F(b)); - находим первую сумму 0.5*(F(a)+F(b)
for j:=1 to N-1 do - для j=1 берем N-1
sum:=sum+(j mod 2+1)*F(a+j*h); - находим сумму первой суммы и данного произведения, где (j mod 2+1)- остаток от деления значения j на значение 2+1
INT:=2*h*sum/3 - значение интеграла равно 2*h*sum/3
end; - окончание нахождения интеграла
begin - начало выполнения программы
WriteLn(' ВВЕДИ TN,TK,N'); - вывод данных на экран
Read(TN,TK,N); - ввод данных с клавиатуры
Simps(Q,TN,TK,N,I); - значения интегрируемой функции
WriteLn('I=',I:8:3) - вывод данных на экран
end. - конец программы

пятница, 18 ноября 2011 г.

Модуль 3, задание 5

Модуль 3, задание 4

Модуль 3, задание 2

Модуль 3, задание 3

6. Как выглядит структура программы на ЯП Pascal?
Program <Имя программы>;
Label <раздел описания меток>;
Const < раздел описания констант>;
Type < раздел описания типов>;
Var < раздел описания переменных>;
Procedure (Function) < раздел описания подпрограмм>;
Begin
<раздел операторов>
End.

7. Как записываются операторы присваивания в ЯП Pascal и Basic? Приведите примеры.
в ЯП Pascal:
<переменная>: = <выражение>(например- S:=V*t),

в ЯП Basic:
<переменная> = <выражение>(например-y=x*3)

8. Как записываются операторы ветвления в ЯП Pascal и Basic? Приведите примеры.
If <логическое выражение> then <оператор1> else <оператор2>
Пример
Program Info1; 
Var A,B,C: Real;
Begin 
Writeln('Введите два числа'); 
Readln(A,B); 
If A>B Then C:=A Else C:=B; 
Writeln(C); 
End. 

в ЯП Basic:
If Условие Then
Серия 1
Else
Серия 2
End If (Visual Basic)

Пример 
REM определить большее из двух чисел... 
INPUT "Введите а", а INPUT "Введите b", b 
IF a>b THEN
PRINT "Большее число: ", a
с=2*a
ELSE
PRINT "Большее число: ", b
с=2*b
END IF
PRINT "результат: ", c
END

9. Приведите примеры записи операторов ввода и вывода ЯП Pascal и Basic.
ЯП Паскаль
Ввод данных с клавиатуры:
read(<список ввода>); readln(<список ввода >);
Вывод данных на экран:
write(<список вывода>); writeln(<список вывода >);

Пример:
Program Info2;
Var
R,S : Real;
Begin
Write('Введите радиус круга '); 
Readln(R); 
S:=4*ARCTAN(1)*SQR(R); 
Writeln('Площадь круга радиусом ',R,' равна ',S)
End.

ЯП Basic
Ввод данных с клавиатуры:
INPUT <Переменная>
Вывод данных на экран:
PRINT <Список вывода>

Пример:
INPUT " введите длины сторон прямоугольника "; a , b 
PRINT " a = " ; a ; " b = " ; b 
PRINT " a = " ; a , " b = " ; b 
PRINT "площадь = " ; a * b 
PRINT " "; 
PRINT TAB(27)"периметр прямоугольника = " ; 2 * ( a + b )

10. Приведите примеры записи любого цикла на ЯП Pascal.
Пример кода оператора цикла Паскаля с постусловием 
Readln(n);
i:=0; 
y:=0; 
Repeat 
i:=i+1; 
y:=y+1/i; 
Until i>n;

11. Приведите пример записи цикла с параметром на ЯП Basic.
Вычислить значение Sin, Cos и tg углов от 0 до 45 градусов с шагом 1 градус. 

CONST PI=3.1415 
FOR I=1 TO 45 
X=PI*I/180 
Y1=SIN(X) 
Y2=COS(X) 
Y3=TAN(X) 
PRINT I, “Sin=”;Y1, “Cos=”; Y2, “tg=”; Y3 
NEXT I

Модуль 3, задание 3

1. Что входит в состав любого языка программирования?
Используемые символы (алфавит)
Типы данных
Структуры данных
Семантика

2. Какие слова в ЯП называются «зарезервированными»?
Зарезервированное слово — в языках программирования слово, имеющее специальное значение.
В языке Паскаль, например:
MOD STRING FOR THEN NOT TO BEGIN CASE CONST IF OR UNTIL
IN VAR DIV INDEX PROCEDURE DO PROGRAM WHILE DOWNTO ELSE END REPEAT
В языке Basic, например:
DIM THEN NEXT REM ELSE WHILE TO R END GOTO MOD INPUT ON NOT PRINT FOR AND IF

3. Какие идентификаторы могут и не могут быть использованы в ЯП Pascal и Basic? Приведите не менее трех примеров на каждый случай.
ЯП Паскаль
Могут:
последовательность латинских букв и цифр, начинающаяся с буквы. В именах может использоваться символ _ подчеркивание. (My_Program, Anna, Kot)
Не могут:
Не разрешается использовать в качестве имен служебные слова и имена, которыми названы стандартные константы, типы, процедуры, функции и файлы (THEN NOT TO)

ЯП Basic
Могут:
латинские буквы, цифры и некоторые символы и должны начинаться с буквы. В конце идентификатора может быть суффикс – символ «$» или «%». (First, _Var, Kniga) 
Не могут:
Не разрешается использовать в качестве имен служебные слова (NEXT REM GOTO MOD ).

4. Что определяет тип данных в языке программирования?
1) возможные значения переменных, констант, функций, выражений, принадлежащих к данному типу;
2) внутреннюю форму представления данных в ЭВМ;
3) операции и функции, которые могут выполняться над величинами, принадлежащими к данному типу

5. Приведите примеры записи массивов в ЯП Pascal и Basic.
ЯП Паскаль
Program Info;

uses CRT;

const N = 20;

var
A : array [1..N] of integer;
i : integer;
begin
ClrScr;
randomize;

for i := 1 to N do
begin
A[i] := random (256);
writeLn ('A[', i, '] = ', A[i])
end
end.

ЯП Basic
Private Type Student 
FIO As String
Age As Byte
HasGramot As Boolean
End Type

Модуль 3, задание 1

Мне понадобилось решить тест 2 раза, чтобы набрать более 11 баллов.