МБОУ ОСОШ № 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.


