МБОУ ОСОШ № 11

Практикум в среде программирования Pascal

Выполнил:

Воронеж 2016

1. Даны три действительных числа, возвести в квадрат те из них значение которых неотрицательно

Решение

Program z1;

Vara, b,c:real;

Begin writeln(‘введизначенияa, b,c’);

Read a, b,c;

If a>=0 then writeln(‘a=’,sqr(a));

If b>=0 then writeln(‘b=’,sqr(b));

If c>=0 then writeln(‘c=’,sqr(c));

Else writeln(‘a=’,a,’b=’,b,’c=’,c);

End.

2. РешитеуравнениеAx+b=0

Решение

Programz2;

Vara, b,x :real;

Begin writeln(‘введизначенияa, b,x’);

Read(a, b);

If a<>0 then

X:=-b/a;

Writeln(x);

End.

3. Вычислите объем полной поверхности конуса R=2

Решение

Program z3;

Varr, h,v, s:real;

Beginwrite (‘введи значения r, h’);

Read (r, h);

V:=(3.14*sqr(r)*h)/3;

S:=3.14*r*(2*h+r);

Writeln(‘объемконусаравен’,V);

Writeln(‘полная площадь поверхности конуса’,s);

End.

4. В студенческой группе n-учащихся. Определите сколько студентов имеют рост свыше 170 см.?

Решение

Program z4;

Const r=170;

Varrost:real;

N, k,m:integer;

Beginwriteln(‘введи количество учащихся в группе’);

Read(n);

M:=1;

K:=0;

Write m<=n olo

Begin writeln(‘введирост ‘,’m’,’ученика’);

Read(rost);

If rost>n then k:=k+1;

M:=m+1;

End;

Writeln(‘в группе’,’k’,’учащихся выше 170 см’)

End.

5. Определите время года по номеру месяца 

Program z5;

Vагm:  integer; 

begin

writeln ("Введите номер месяца ');

write('->');

readln (m) ;

case month of

1,2,12: writeln('Зима');

3..5:  writeln('Весна');

НЕ нашли? Не то? Что вы ищете?

6.. 8:  writeln('Лето');

9.. 11: writeln('Осень')

Elsewriteln(' нет такого месяца');

End;

Readln;

End.

6. Введите с клавиатуры a и b. Найдите сумму целых чисел, принадлежащих отрезку [a, b].

Решение

Programz6;

VarSumma, x, a, b: integer;        х-числомеждуаиb

begin

Write ('Введи a и b ');

Readl (a, b);

Summa := 0;

For x:=a to b do

begin

Write ('Введичисло ');

Readln (x);

Summa := Summa + x

end;

Writeln ('сумма=', Summa);

Readln

end.

7. Трем классам необходимо убрать участок площадью S м2. Определите площади участков для уборки каждому классу при условии, что в классах разное количество учащихся.

Решение

programz7;

uses crt;

var

a, b,c: integer;

s, sr, s1,s2,s3: real;

begin

clrscr;

write('введите количество учащихся 1 класса ');

readln(a);

write('введите количество учащихся 2 класса ');

readln(b);

write('введите количество учащихся 3 класса ');

readln(c);

write('введите площадь территории ');

readln(s);

sr:=s/(a+b+c); {площадьна 1 ученика};

s1:=sr*a;

s2:=sr*b;

s3:=sr*c;

writeln('1-й класс убирает территорию ',s1:5:2,' м. кв.');

writeln('2-й класс убирает территорию ',s2:5:2,' м. кв.');

writeln('3-й класс убирает территорию ',s3:5:2,' м. кв.');

readln;

end.

8. Вычислите:


Решение

programz8;

var

x, y: real;

begin

clrscr;

write('введите значение х ');

readln(x);

if x<0 then y:=11*sqr(x)+4.8

else if x>14 then y:=7.5*sqr(x-3.9)*(x-3.9)

else y:=1.9*sqrt(x)-5.4;

writeln('y= ',y:5:2);

readln;

end.

9. ИзпоследовательностиA(N) удалитевсенулевыеэлементы.

Решение

programz9;

uses crt;

const n=20;

var

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

i, k: byte;

begin

clrscr;

randomize;

writeln('Исходная последовательность');

writeln;

for i:=1 to n do begin

a[i]:=random(40)-10;

write(a[i]:4);

end;

writeln;

writeln;

k:=0; {Переменная, обозначающая порядковый номер остающихся в последовательности элементов }

for i:=1 to n do

if a[i]<>0 then begin

k:=k+1;

a[k]:=a[i];

end;

if k=0 then writeln ('Последовательностьудалена')

elsebegin

writeln ('Преобразованная последовательность');

writeln;

fori:=1 tokdo

write(a[i]:4);

end;

readln;

end.

10. Из матрицы A(N, M) удалите все положительные строки (строки, в которых все элементы положительные).

Решение

programz10;

uses crt;

const

m=6;

var

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

n, i, j, k: byte;

fl, fl1: boolean;

begin

clrscr;

write('введите количество строк матрицы ');

readln(n);

clrscr;

randomize;

writeln ('Исходная матрица');

writeln;

for i:=1 to n do begin

for j:=1 to m do begin

a[i, j]:=random(40)-10;

write(a[i]:4);

end;

writeln;

end;

writeln;

fl:=false; {Предполагаем, что в матрице нет положительных строк}

fori:=ndownto 1 dobegin{Удаление строк начинаем со строки с большим номером (чтобы при перемещении не менялись номера других положительных строк, подлежащих удалению)}

fl1:=true; {Предполагаем, что в строке все элементы положительны}

j:=1;

while (j<=m) and (fl1) do{Цикл продолжаем до встречи первого неположительного элемента в строке или окончания строки}

begin

if a[i, j] <= 0 then  fl1:=false;

j:=j+1;

end;

iffl1 thenbegin{Если в cтроке все элементы положительны, то строку удаляем}

ifi<nthen{Если удаляемая cтрока не последняя, то все последующие строки перемещаем на одну вверх}

for k:= i to n-1 do

for j:=1 to m do

a[k, j]:= a[k+1,j];

n:=n-1; {Уменьшаем количество выводимых на экран строк на одну}

fl:=true; {Фиксируем наличие положительной строки}

end;

end;

ifnotflthenwriteln ('В матрице нет положительных строк')

elseifn=0 thenwriteln ('В матрице все строки положительны') {Матрица подлежит удалению}

elsebegin

writeln ('Преобразованнаяматрица');

writeln;

for i:=1 to n do begin

for j:=1 to m do

write(a[i]:4);

writeln;

end;

end;

readln;

end.

11. Из заданного текста удалите самое короткое слово и самое длинное слово.

Решение

program z11;

uses crt;

var

s, s1:string;

n, i,k, min, max:byte;

a:array [1..100] of string;

begin

clrscr;

writeln('Введитетекст');

readln(s);

clrscr;

s:=s+' '; {Для удобства поиска слов в тексте (по наличию пробела) добавим пробел в конец текста}

n:=0; {Первоначальное количество элементов (слов заданного текста) в последовательности}

i:=1;

while length(s)>0 do begin

k:=pos(s,' '); {Находим позицию первого пробела в обрабатываемом на текущем шаге тексте}

n:=n+1; {Увеличиваем количество найденных слов}

a[n]:=copy(s,1,k-1); {В последовательность заносим очередное слово текста}

delete(s,1,k); {Из текста удаляем найденное слово вместе с пробелом}

end;

min:=1;max:=1; {Предполагаем, что самым длинным и самым коротким словом является первое слово (его номер заносим в переменные min и max)}

for i:=1 to n do

if length(a[min])>length(a[i]) then min:=i 

else if length(a[max])<length(a[i]) then max:=i;

s1:=''; {Готовим переменную для записи в нее нового текста}

fori:=1 tondo

ifnot((i=min) or (i=max)) thens1:=s1+a[i] + ' ';

delete(s1,length(s1),1); {Из «нового» текста удаляем последний пробел}

writeln(s); {Выводим исходный текст}

writeln; {Пропускаем строку на экране}

writeln(s1); {Выводим преобразованный текст}

readln;

end.

12. Дан список учащихся класса с указанием их возраста и роста. Составить список потенциальных участников баскетбольной секции, если ее могут посещать учащиеся не моложе 12 лет и не ниже 165 см, или выдать сообщение об отсутствии таких учащихся.

Решение

programz12;

uses crt;

type zapis=record

fio:string[50];

vozrast:byte;

rost:real;

end;

var

a: array[1..40] of zapis;

n, i: byte;

fl:boolean; 

begin

clrscr;

write('Количество учеников класса');

readln(n);

for i:=1 to n do begin

writeln('Ф. И.О ',i,' ученика ');

readln(a[i].fio);

writeln('возраст ',i,' ученика ');

readln(a[i].vozrast);

writeln('рост ',i,' ученика ');

readln(a[i].rost);

clrscr;

end;

fl:=false; {Предполагаем, что в списке нет кандидатов в баскетбольную секцию}

writeln ('Список кандидатов в баскетбольную секцию');

writeln;

for i:=1 to n do

if  (a[i].vozrast>=12) and (a[i].rost>=165) then begin

writeln(a[i].fio);

fl:=true;{Фиксируем наличие кандидата в секцию}

end;

writeln;

ifnotflthenwriteln('В списке нет кандидатов в баскетбольную секцию');

readln;

end.

Источники

1. , , Задачи по программированию. М., 1988.

2. , Начала информатики. М., 1989.

3. лгоритмы + структуры данных = программы. М., 1985.

4. , Алгоритмические языки и программирование: Методические рекомендации по выполнению контрольных и лабораторных работ, часть 1. ХАИ, 1997.

5. , Алгоритмические языки и программирование: Методические рекомендации по выполнению контрольных и лабораторных работ, часть 3. ХАИ, 1998.

6. рограммирование на языке Паскаль. М., 1982.

7. ешение задач в системе Турбо Паскаль. М., 1991.

8. Основы программирования на языке ПАСКАЛЬ. М.,1997.

9. аскаль: руководство для пользователя. М., 1989.

10. , Сборник заданий по практикуму на ЭВМ. М., 1986.

11. TURBO PASCAL и объектно-ориентированное программирование. М., 1992.

12. Сборник упражнений по языку Паскаль. М., 1989.

13. рограммирование на языке Паскаль: Практическое руководство. М., 1987.

14. Турбо Паскаль 7.0. Начальный курс. Учебное пособие. М., 1997.

15. Турбо Паскаль 7.0. Практика программирования. Учебное пособие. М., 1997.