Реферат: Контрольные по информатике

Контрольные по информатике

writeln (i);

until eof(f);

...

  1. ввод массива

...

i:=0;

while c<>’*’ do

begin

i:= i+1;

read (c[i]);

end;

...

  1. ввод массива

...

i:=0;

repeat

i:=i+1;

read(c[i]);

until c=’*’;

...


2. В языке Паскаль ввод-вывод информации осуществляется через файловые переменные.

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

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

Процедура ASSIGN (Var_file, Road): с помощью этой процедуры вы связываете файловую переменную Var_file с некоторым именем файла, которое хранится в переменной Road.

Var

Var_file: file of integer;

Road: string[14];

...

Road:=’Data.dat’;

Assign (Var_file, Road);

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

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

Assign (var_file, ‘Data.dat’);

Reset (Var_file);

Данная процедура содержит необязательный параметр Size целого типа, который используется только с файлами без типа и задает размер пересылаемого элемента информации в байтах. По умолчанию этот параметр равен 128. Файл текстового типа может быть открыт либо для чтения процедурой Reset, либо для записи процедурой Rewrite или Append.

Процедура Rewrite: создает новый файл и открывает его для записи или чтения. Если файл с таким именем уже существует, его содержимое стирается, а сам файл открывается заново.

Rewrite (Var_file);

открывает существующий файл, связанный с файловой переменной Var_file.

Процедура Close: закрывает ранее открытый файл, связанный с указанной переменной в качестве параметра файловой переменной.

Close (Var_file);

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

Процедура Rename: позволяет переименовать существующий файл, связанный с указанной в качестве параметра файловой переменной. Данная процедура применяется только к закрытым файлам.

Assign (Var_file, ‘Data.dat’);

Rename (Var_file, ‘Text.dat’);

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

Assign (Var_file, ‘Data.dat’);

Erase (Var_file);

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

While not EOF (Var_file) do

read (Var_file, m[i]);

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

Функция IOResult: предназначена для поиска ошибок, возникающих при работе с файлами. Эта функция возвращает результат последней операции ввода-вывода, если автоматический контроль за ошибками, возникающими в процессе операций ввода-вывода, отключен с помощью директивы компилятора {$I-}. При безошибочном выполнении операций ввода-вывода данная функция возвращает ноль, если же ошибка имела место, то данная функция возвращает код ошибки.

{$I-}

Reset (‘C:data.dat’);

if IOResult <>0 then writeln (‘ Ошибка при открытии файла’);

{$I+}


Задание 2.

6.

uses crt;

var

z,m,n:real;

x,i:integer;


Begin

clrscr;

write ('Введите x:');

readln (x);

m:=1;

for i:=1 to x do

m:=m*3;

m:=1/m;

n:=sqrt(sqrt(abs(x)));

n:=x+n;

n:=sqrt(n);

z:=m*n;

writeln ('z=',z:8:4);

end.

Задание 3-а.

0.

uses crt;

var

ar:array[1..100] of integer;

i,am,num:integer;

Begin

num:=0;

clrscr;

write ('Введите размерность массива:');

readln (am);

writeln ('Введите массив:');

for i:=1 to am do readln (ar[i]);

clrscr;

i:=0;

for i:=1 to am do

if ar[i]<0 then num:=i;

for i:=1 to am do

write (ar[i]:3,';');

writeln;

if num<>0 then writeln ('Первый отрицательный элемент:',num);

end.


Задание 4.

6.

uses crt;

type tpat=record

name:string[50];

diag:string;

num,temp:integer;

sost:string;

end;

var

pat:tpat;

f:file of tpat;

t:text;

i:integer;

ch:char;


Begin

clrscr;

assign (f,'1.dat');

assign (t,'1.txt');

rewrite (f);

rewrite (t);

while ch<>'*' do

begin

write ('Введите фамилию пациента:');

readln (pat.name);

write ('Введите номер палаты:');

readln (pat.num);

write ('Введите температуру больного:');

readln (pat.temp);

write ('Введите диагноз:');

readln (pat.diag);

write ('Введите состояние больного:');

readln (pat.sost);

write (f,pat);

clrscr;

write ('Продолжить ввод? *-нет');

readln (ch);

end;

while not eof(f) do

begin

read (f,pat);

if pat.num=10 then writeln (t,pat.name,pat.diag,pat.sost,pat.temp);

end;

end.


Задание 1.

№1.

  1. z = -(1 / 2) ^ -2

  2. b = 13.2 * 10 ^ -3

  3. g = 25000

  4. y = ((m * c - 1) / 11) ^ (1 / 5)

  5. f = (SIN(x)) / (x + EXP(x))

  6. t = (SIN(x) - a * COS(x)) / (COS(x) + b)

№2.

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

Найти радиус основания цилиндра, имеющего при данном объеме наименьшую поверхность,

R=, V= 750 см3

Константы: V,

Выходные данные: R

  1. Математическая модель задачи


R=

  1. Схема алгоритма


1.Начало



2.Вычисление R




3. Вывод R



4. Конец


4. Текст программы.

CLS

v = 750

pi = 3.14

r = (v / 2 * pi) ^ (1 / 3)

PRINT r


Задание №2.

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

x3+3x, если x>0

Вычислить значение функции y= 0, если x=0

x3-3x, если x<0

для произвольных значений аргумента

Входные данные: x

Выходные: y

  1. Математическая модель задачи

y=x3+3x, если x>0

y=0, если x=0

y=x3-3x, если x<0

  1. Схема алгоритма


1. Начало




2. Ввод x





3. x=0 4. y=0




  1. y=x3-3x 5. x<0




7. y=x3+3x


8. Вывод y


9.Конец


  1. Текст программы

10 CLS

20 INPUT x

30 IF x = 0 THEN y = 0

40 IF x <= 0 THEN y = x ^ 3 - 3 * x ELSE y = x ^ 3 + 3 * x

50 PRINT y

  1. Отладка программы

Контрольный вариант: при x=0 y=0

при x=-1 y=2

при x=2 y=14


№2.

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

q1=, если l>1

Вычислить значение функции q1=, если l<1

q1=, если l=1

Входные данные: l

Выходные данные: q1

  1. Математическая модель задачи

q1=, если l>1

q1=, если l<1

q1=, если l=1

  1. Схема алгоритма

1.Начало




2.Ввод l



4. q1= 3.l=1




5.l<1 6. q1=



7.q1=



8.Вывод q1




9.Конец


  1. Текст программы

10 CLS

20 INPUT l

30 IF l = 1 THEN q1 = (l ^ 2 + 1) ^ (1 / 3)

40 IF l <= 1 THEN q1 = SQR(l ^ 2 + 1) ELSE q1 = 2.5 / (l - 7)

50 PRINT q1

  1. Отладка программы

Контрольный вариант: при l=2 y=-0.5

при l=1 y=1.414214

при l=-2 y=2.236068

Задание№3.

№1.

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

Как изменяется центростремительное ускорение поезда, движущегося по закруглению дороги со скоростью V, в зависимости от радиуса r?

a=, где r=60 км/ч; 200<=r<=1000 м с шагом 100 м.

  1. Математическая модель задачи

a=, где r={200..1000}


  1. Схема алгоритма


1.Начало



2.a1=


3.a=200,1000,100



4.Вывод a



5.Вывод изменения ускорения




6.Конец


  1. Текст программы

10 CLS

20 v = 60

30 a1 = v ^ 2 / 200

40 FOR r = 200 TO 1000 STEP 100

50 a = v ^ 2 / r

60 PRINT a

70 NEXT r

80 ax = v ^ 2 / 1000

90 ax = ax - a1

100 PRINT ax

5. Отладка программы

При радиусе равном: 200 ускорение равно: 18

1000 3.6

изменение равно: 14.4

№2.

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

Определить статический и динамический прогибы балки по формулам

fcт =,fд= fcт+


E=2*106 кг/см2; J=2500 см4; Q=4 т;

6<=l<=12 м c шагом 3 м;

1<=h<=5 м с шагом 1м.

  1. Математическая модель задачи

fcт =,fд= fcт+


l={6..12};

h={1..5}.

  1. Схема алгоритма



1.Начало



2.l=6,12,3 7. fcт =



8. Вывод fcт

3.fcт =


9. Конец


4.h=1,5,1




  1. fд = fcт+


6. Вывод fд

  1. Текст программы

10 CLS

20 e = 2 * 10 ^ 6

30 j = 2500

40 q = 4000

50 FOR l = 6 TO 12 STEP 3

60 fs = q * l ^ 3 / 48 * e * j

70 FOR h = 1 TO 5

80 fd = fs + SQR(fd ^ 2 + 2 * fd * h)

90 PRINT fd

100 NEXT h

110 NEXT l

120 fs = q * l ^ 3 / 48 * e * j

130 PRINT fs


Отечественное программирование зародилось в 50-х годах 20 века в крупных научных центрах, осваивавших первые советские вычислительные машины БЭСМ и «Стрела».

При поверхностном взгляде выбор языковой гаммы продиктован следующими ступенями становления программиста:

Бэйсик — первая ступень, школьная информатика;

Паскаль — вторая ступень, информатика в специализированных школах и большинстве ВУЗов;

Си, Си++ — третья ступень, стандартное профессиональное образование;

Visual Basic — четвертая ступень, программирование в среде Windows.

Однако при более глубоком анализе можно заметить очень тесное взаимопроникновение со­временных версий алгоритмических языков и сближение их функциональных возможностей. В развитых современных системах программи­рования предлагаются примерно эквивалентные возможности. Там, где трудно обойтись стандар­тными средствами алгоритмического языка вы­сокого уровня, используют вставки из ассемб­лерных строк (т. е. команд машинного языка). Иногда тот или иной язык вырывается вперёд. Например, появление и развитие элементов объ­ектно-ориентированного программирования в Си++ моментально вызвало к жизни аналогич­ные изменения в других языках. Революцион­ная идея общедоступного «визуального» про­граммирования, предложенная в системе Visual BASIC, сразу же была подхвачена в среде Visual Сив той или иной мере нашла своё отражение в новых версиях Borland C++.

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

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

Своим названием BASIC обязан сокращению фразы Beginner's All-purpose Symbolic Instruc­tion Code, которая дословно переводится как многоцелевой код (язык) символических инст­рукций для начинающих. Авторство и первая реализация языка Бейсик принадлежат груп­пе преподавателей и студентов Дартмутского колледжа во главе с профессорами Дж. Кемени и Т. Куртцем, которые 1 мая 1964 вдохнули жизнь в первый Бейсик-интерпретатор.

Бейсик открыл эру диалогового программи­рования. До него культивировался пакетный


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

Системы коллективного доступа, работавшие в диалоговом режиме, обеспечивали одновре­менное обслуживание нескольких пользовате­лей, запускавших свои программы с электроме­ханических или электронных терминалов. Опе­ративно получив сообщение об очередной ошибке, пользователь имел возможность тут же исправить текст исходной программы и снова выполнить её. Диалоговый режим, естествен­но, был связан с дополнительными накладными расходами на многотерминальное обслужива­ние. Загрузка ЭВМ при этом снижалась, но оперативность в отладке программ приводила к существенному сокращению календарных сро­ков их разработки.

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

Вторая особенность, привлекающая массово­го потребителя к Бейсику, кроется в простоте начального освоения и краткости его изобрази­тельных средств. Попробуйте найти хотя бы еще один язык, на котором программа, отвечаю­щая на вопрос, чему равно 2-2, состоит всего из четырёх символов1:

?2*2

Аналогичная программа на Паскале содер­жит, минимум, три строки, а её длина превы­шает 20 символов:

begin

(writein 2*2);

end.

Примерно вдвое больше символов требуется для аналога на Си:

#include main()

{printf("%d",2*2);

}

Второе поколение Бейсик-систем ведёт свой отсчёт от появления первых ПК на базе 8-раз­рядных микропроцессоров Intel-8080 и Z-80, для которых в середине 70-х гг. был разработан ком­пактный интерпретатор BASIC-80. Именно с не­го началась карьера самого молодого амер. мил­лиардера Б. Гейтса, основавшего корпорацию Microsoft.

Появление 16-разрядных IBM-совместимых ПК ознаменовалось конкурентной борьбой меж­ду компаниями Borland International и Microsoft Corporation. Первая из них выпустила на рынок удобную интегрированную среду с компилято­ром Turbo BASIC, которая быстро привлекла на свою сторону многочисленных любителей Бей­сика. Однако вторая, более мощная компания, не могла смириться с таким положением. На смену тихоходному интерпретатору GW-BASIC пришла целая серия скоростных систем Quick 'BASIC, в составе которых наряду с интегриро­ванной средой поставлялись автономные ком­пиляторы и достаточно мощные библиотеки про­грамм. Соревнование Бейсик-систем третьего поколения закончилось поражением фирмы Borland, прекратившей свои разработки и пере­давшей права на Turbo BASIC одному из авто­ров, вышедшему из состава