Контрольная работа по "Программированию и компьютерам"

Автор работы: Пользователь скрыл имя, 16 Января 2014 в 09:00, контрольная работа

Описание работы

Формулировка задачи
Сколько оборотов совершит колесо радиусом А см, преодолевая путь N км. Значения А и N вводятся с клавиатуры в процессе работы программы. Результат вывести на экран в виде «Колесо совершит … оборотов»

Файлы: 1 файл

Программирование.docx

— 325.07 Кб (Скачать файл)

Министерство образования  и науки Российской Федерации

Российский государственный  профессионально –

педагогический университет

 

Факультет информатики

Кафедра сетевых информационных систем

 

 

КОНТРОЛЬНАЯ РАБОТА

по дисциплине

«АЛГОРИТМИЧЕСКИЕ ЯЗЫКИ И СИСТЕМЫ ПРОГРАММИРОВАНИЯ»

 

Специальность  230400.62 Информационные технологии в медиаиндустрии  

 

 

 

 

Выполнил                                                            Студент гр. ЗИТМ – 102с

Низамов Рустам Радикович

 

Проверил             Преподаватель кафедры сетевых

 информационных систем

____________________________

Екатеринбург 2011

Отчет

Задание 1.

Формулировка  задачи

Сколько оборотов совершит колесо радиусом А см, преодолевая путь N км. Значения А и N вводятся с клавиатуры в процессе работы программы. Результат вывести на экран в виде «Колесо совершит … оборотов»

Рис. 1 блок схема к задаче №1.

Листинг программы

 

Program zd1;

Uses Crt;

Var

      A,N,S: real;

   Begin

ClrScr;

write('Введите радиус колеса в см = '); readln(A);

write('Введите прошедшее расстояние в км = ');readln(N);

S:=N*10000/(2*pi*A);

Writeln('Колесо совершило ', S:4:2, ' оборотов');

Readln;

End.

 

 

 

Задание 2.

 

Формулировка  задачи

      

 

Даны x, y, z . Вычислить a, b, если:

     


Рис. 2 блок схема к задаче №2.

 

 

 

Листинг программы

 

Program zd2;

Uses Crt;

Var

   a,b,x,y,z: real;

Begin

ClrScr;

write('x= ');readln(x);

write('y=');readln(y);

write('z=');readln(z);

a:=(sqrt(abs(x-1))-sqrt(abs(y)))/(1+x*x/2+y*y/2);

Writeln('a= ', a:4:2);

b:=x*(ArcTan(z)+exp(1));

Writeln('b= ', b:4:2);

Readln;

End.

 

Задание 3.

Формулировка  задачи

Даны a и b. Если a и b попадают в область 3 < а < 10 и b < 0, то

вычислить значение y по формуле

y = а+ b2 – 4 ,

иначе

5, если x ≥ 2

y =        x2 – 1, если x = 3

       x + 2 , если x < 2

для произвольного x.

Рис. 3 блок схема к задаче №3.

 

Листинг программы

 

Program zd3;

Uses Crt;

Var

   a,b,x,y: real;

Begin

ClrScr;

write('a= ');readln(a);

write('b= ');readln(b);

If (3<a) and (a<10) and (b<0) then

y:=a+b*b-4

 else

  begin

   write('x=', x);

    if x>=2 then

     y:=5

    else

     if x=3 then

       y:=x*x-1

    else

      y:=x+2;

  end;

Writeln('y= ', y);

Readln;

End.

 

Задание 4.

Формулировка  задачи

Дата задана в виде тройки целых чисел, задающих номер дня, месяца и года. Написать программу, которая выводит эту дату в  виде «9 мая 1945 года».

 

 

Рис. 4 блок схема к задаче №4.

 

Листинг программы

 

Program zd4;

Uses Crt;

Var

   d,m,y,n: Integer;

   err:boolean;

Begin

err:=false; ;

write('Введите день = ');readln(d);

write('Введите месяц= ');readln(m);

write('Введите год= ');readln(y);

case m of

1:writeln(d,' января ', y ,' года');

2:writeln(d,' февраля ', y,' года');

3:writeln(d,' марта ', y,' года');

4:writeln(d,' апреля ', y,' года');

5:writeln(d,' мая ', y,' года');

6:writeln(d,' июня ', y,' года');

7:writeln(d,' июля ', y,' года');

8:writeln(d,' августа ', y,' года');

9:writeln(d,' сентября ', y,' года');

10:writeln(d,' октября ', y,' года');

11:writeln(d,' ноября ', y,' года');

12:writeln(d,' декабря ', y,' года');

else

err:=true;

end;

if err then

writeln('Пожалуйста, введите корректную дату! ',m);

read(m);

end.

 

Задание 5.

Формулировка  задачи

Напечатать таблицу перевода температуры из градусов по шкале  Цельсия (С) в градусы по шкале  Фаренгейта (F) для значений от 15°С до 30°С с шагом 1°С (перевод осуществляется по формуле F=1,8C+32)

 

 

Рис. 5 блок схема к задаче №5.

 

Листинг программы

 

Program zd5;

Uses Crt;

Var

i:integer;

F:real;

Begin

 for i:=15 to 30 do

  begin

   F:=0;

   F:=1.8*i+32;

   writeln(i, 'C = ',F,' F')

  end;

Readln;

End.

 

 

Задание 6.

Формулировка  задачи

Ежегодный прирост рыбы в  пруду составляет 15%. Запасы рыбы оценены  в А тонн. Ежегодный план отлова В тонн. Наименьший запас рыбы, ниже которого запас уже не восстанавливается, составляет С тонн. Составьте алгоритм и программу, подсчитывающую, сколько лет можно выдерживать заданный план?

Рис. 6 блок схема к задаче №6.

 

Листинг программы

 

Program zd6;

Uses Crt;

const k=1.15;

var a,b,c:real;

i:integer;

BEGIN

write('Введите запас A=');readln(a);

write('Введите план отлова B=');readln(b);

write('Введите наименьший запас C=');readln(c);

 

i:=0;

if b-(k-1)*a<=0.00001

then writeln('отлов не больше прироста')

else begin

while a>=c do

begin

if a>=b then inc(i,1);

a:=a*k-b;

end;

writeln('количество лет, в течении которых план будет выдержен',

i);

 end;

readln;

END.

 

 

Задание 7.

Формулировка  задачи

Составьте программу для  определения N!-M!, где N! = 1*2*3*4*.........*n

 

 

Листинг программы

 

program zd7;

Uses Crt;

 var

 N,M:Word;

 function

 NfactMinusMfact(N,M:Word):real;

var

  i:integer;

 

NdivM,Res:integer;

begin

if N<M then

NfactMinusMfact:=-NfactMinusMfact(M,N)

 else begin

 

 NdivM:=1;

 for i := M+1 to N do

 

NdivM:=NdivM*i;

Res:=NdivM-1;

for i := 2 to M

do

Res:=Res*i;

NfactMinusMfact:=Res;

end;

end;

begin

 

Write('N=');ReadLn(N);

Write('M=');ReadLn(M);

 

WriteLn('N!-M!=',NfactMinusMfact(N,M):0:0);

ReadLn;

end.

 

Задание 8.

Формулировка  задачи

Дана последовательность и eps>0. Найти первый член последовательности Аn, для которого |An-An+1| < eps.

 

Рис. 8 блок схема к задаче №8.

Листинг программы

Program zd8;

Uses Crt;

const

  e=0.000001;

var

  i:integer;

begin

  i:=1;

  repeat

    inc(i);

  until abs((1-1/i)-(1-1/(i+1)))<e;

  write('Result A(',i,'):=',(1-1/i));

  readln;

end.

Задание 9.

Формулировка  задачи

Даны целочисленные массивы  X и Y с разным количеством элементов. Найти разность между минимальными элементами этих массивов.

Рис. 9 блок схема к задаче №9.

 

Листинг программы

Program zd9;

Uses Crt;

     var

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

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

      xm,ym,i,min1,min2,s:integer;

begin

write('введите кол-во X массива =');

readln(xm);

write('введите кол-во Y массива =');

readln(ym);

 

randomize;

for i:=1 to xm  do

x[i]:=random(20)+1-10;

 

for i:=1 to ym  do

y[i]:=random(20)+1-10;

 

min1:=x[1];

min2:=y[1];

 

for i:=2 to xm do

  if x[i]<min1 then

min1:=x[i];

 

for i:=2 to ym do

  if y[i]<min2 then

min2:=y[i];

 

s:=min1-min2;

writeln('Разность между минимальными элементами этих массивов = ', s);

 

readln;

end.

 

Задание 10.

Формулировка  задачи

Дан двумерный массив целых  чисел из 4 столбцов и 3 строк. Найти  сумму элементов стоящих до первого  нуля. Просмотр вести по строкам. Заменить элементы, стоящие после последнего нуля на эту сумму. Вывести массив по строкам до и после замены.

 

Рис. 10 блок схема к задаче №10.

Листинг программы

 

Program zd10;

Uses Crt;

const n=3;

      m=4;

var a:array[1..n,1..m] of integer;

i,j:integer;

i0,j0:integer;

sum:integer;

flag:boolean;

BEGIN

randomize;

for i:=1 to n do

for j:=1 to m do

a[i,j]:=trunc(-6+random*12);

 

writeln('Исходный массив:');

for  i:=1 to n do

begin

     for j:=1 to m do

     write(a[i,j]:4);

     writeln;

end;

i0:=n+1;

j0:=m+1;

flag:=false;

sum:=0;

for i:=1 to n do

for j:=1 to m do

     if a[i,j]=0

     then begin

       if not(flag) then flag:=true;

       i0:=i;

       j0:=j;

       end

     else if not(flag) then inc(sum,a[i,j]);

for j:=j0+1 to m do a[i0,j]:=sum;

for i:=i0+1 to n do

    for j:=1 to m do

    a[i,j]:=sum;

if not flag then

writeln ('Нет элементов=0')

else

begin

writeln('Итоговый массив:');

for  i:=1 to n do

begin

     for j:=1 to m do

     write(a[i,j]:4);

     writeln;

end;

end;

readln;

END.

 

Задание 11.

Формулировка  задачи

Дана  матрица А(nxn). Написать программу нахождения минимального элемента из (max1, ...,maxn), где maxi - максимальный в i - той строке.

 

Листинг программы

 

Program zd11;

Uses crt;

const n=6;

var a:array[1..n,1..n] of integer;

    i,j,max,min:integer;

begin

clrscr;

randomize;

writeln('Матрица:');

for i:=1 to n do

  begin

    for j:=1 to n do

      begin

     a[i,j]:=random(20);

     write(a[i,j]:4);

      end;

    writeln;

  end;

min:=maxint;

for i:=1 to n do

  begin

    max:=a[i,1];

    for j:=2 to n do

    if a[i,j]>max then max:=a[i,j];

    writeln('Max в строке ',i,'=',max);

    if max<min then min:=max;

  end;

writeln;

write('Минимум из максимума =',min);

readln

end.


Информация о работе Контрольная работа по "Программированию и компьютерам"