Рабочая программа учебной практики
Направление подготовки – Прикладная информатика
Профиль подготовки - социально-культурная сфера
Квалификация выпускника - бакалавриат
Краснодар – 2012
Содержание
1.ВВЕДЕНИЕ………………………………………..…..3-4
2.Цели и задачи практики………………………………4
3.Задания и их решения….…….…………....................6
4.Дневник практики…………………………..……...76
5.Рекомендуемая литература.…………………………..78
ВВЕДЕНИЕ
Так как ЭВМ является "слепым" исполнителем программ, то успешное решение задачи полностью определяется квалификацией программиста.
В общем случае решение задачи на ЭВМ можно разбить на следующие этапы:
- постановка задачи;
- разработка алгоритма;
- составление программы;
- трансляция программы;
- отладка и выполнение программы;
- анализ результатов.
В программировании используется такое определение алгоритма: "алгоритм – это точное предписание, определяющее вычислительный процесс, ведущий от варьируемых начальных данных к искомому результату".
Алгоритм должен обладать следующими основными свойствами:
- детерминированность (определенность) – при заданных исходных данных обеспечивается однозначность искомого результата;
- массовость – пригодность для задач данного типа при исходных данных, принадлежащих заданному подмножеству;
- результативность – реализуемый вычислительный процесс выполняется за конечное число этапов с выдачей осмысленного результата;
- дискретность – разбиение на отдельные этапы, выполнение которых не вызывает сомнений.
Под программой понимают описание, воспринимаемое ЭВМ и достаточное для решения на ней определенной задачи. Для создания программы используются искусственные языки, называемые языками программирования. ЭВМ, как правило, непосредственно воспринимает и выполняет программы, написанные только на одном из языков программирования – машинном языке для данной ЭВМ. С помощью специальных программ можно получить опосредованное "понимание" других языков. Одна из таких программ – транслятор. Транслятор – это программа, осуществляющая перевод текстов с одного языка на другой, т.е. с входного языка (Паскаль и др..) на машинный язык реальной ЭВМ. Программа, попадающая на вход транслятора, называется исходной, а результат трансляции – объектной программой.
|
Цели и задачи практики
- изучение и освоение методов разработки и приемов эксплуатации информационных систем.
- подготовка к осознанному и углубленному изучению общепрофессиональных и специальных дисциплин;
- углубление и систематизация знаний по программному обеспечению информационных систем;
- подготовка будущего специалиста к самостоятельной трудовой деятельности;
- формирование умений и навыков по базовым информационным технологиям;
- приобретение умений и навыков по рабочей профессии «Прикладная информатика в социально-культурной сфере»;
- развитие профессионального мышления;
- обеспечение связи практики с теоретическим обучением.
- формирование умений и навыков по работе на персональном компьютере;
- приобретение практических умений и навыков по видам деятельности техника – производственно-технологической и организационно-управленческой;
|
Задания и их решения
Практические задания
Написать представленные задачи в виде текстовых файлов в программе Word и проверить их работоспособность.
Создать на основе решения блок-схему каждой задачи.
1.Составить программу, которая запрашивает возраст ребенка и затем выдает решение о приеме ребенка в школу (возраст ³ 7лет).
Program sh;
Var v: integer;
Begin
Write(‘Введите возраст ребенка’);
Readln(v);
If v>=7 then writeln(‘Принимаем в школу’)
else writeln (‘Не принимаем в школу’);
end.
начало |
конец |
v>=7 |
Ввод v |
Прин. |
Не прин. |
+ |
- |
2. Модифицировать данную программу, чтобы ограничить верхнюю границу приема в школу 16 годами.
Program sh;
Var v: integer;
Begin
Write(‘Введите возраст ребенка’);
Readln(v);
If (v>=7) and (v<=16) then writeln(‘Принимаем в школу’)
else writeln (‘Не принимаем в школу’);
end.
начало |
Ввод v |
v>=7 and v<=16 |
Не прин. |
Прин. |
конец |
+ |
- |
Прин. |
3.Даны два числа. Меньшее из этих чисел заменить суммой данных чисел, большее - произведением.
Program sh;
Var x, y,s,p: integer;
Begin
Write(‘Введите 2 числа’);
Readln(x, y);
s:=x+y; p:=x*y;
If x>y
then begin y:=s; x:=p; end
else begin x:=s; y:=p; end;
начало |
writeln(‘y=’, y);
end.
Ввод x,y |
конец |
s:=x+y p:=x*y |
x>y |
x:=s y:=p |
y:=s x:=p |
+ |
- |
x= y= |
4.Составить программу, которая по введенному номеру дня недели выводит на экран его название.
начало |
Var day:byte;
Begin
Write(‘Введите номер дня недели’);
Ввод day |
Case day of
- |
+ |
+ |
Пн |
Пн |
Пн |
Ср |
|
- |
- |
- |
+ |
Вт |
else writeln(‘Такого дня нет’);
end; end.
Чт |
Пт |
Сб |
Вс |
- |
- |
- |
+ |
+ |
+ |
+ |
Такого дня нет |
конец |
5.Составить программу, которая по введенному номеру месяца выводит на экран название времени года.
Program m;
Var k:byte;
Begin
Write(‘Введите номер месяца’);
Readln(k);
Case k of
1, 2, 12: writeln(‘Зима’);
3, 4, 5: writeln(‘Весна’);
6, 7, 8: writeln(‘Лето’);
9, 10, 11: writeln(‘Осень’)
else writeln(‘Такого месяца нет’);
end; end.
начало |
Ввод k |
1,2,12 |
3,4,5 |
Весна |
- |
+ |
Зима |
6,7,8 |
Лето |
9,10,11 |
Осень |
+ |
+ |
+ |
- |
- |
- |
Такого месяца нет |
конец |
6.Вывести на экран таблицу перевода из градусов по шкале Цельсия в градусы по Фаренгейту для значений от 15°С до 30°С с шагом в 1°С. Перевод осуществляется по формуле: F=C*1.8+32.
Program zf;
Var i:integer; f:real;
Begin
Writeln(‘Температура’);
For i:=15 to 30 do
Begin
f:=i*1.8+32;
Writeln(‘по Цельсию’, i, ‘по Фаренгейту’, f:5:2);
End;
End.
начало |
Температура |
i:=15..30 |
+ |
f:=i*1.8+32 |
по Цельсию, i, по Фаренгейту, f |
конец |
- |
7. Найти сумму 10 произвольных чисел.
Program z;
Const
N=10;
Var k, x, s: integer;
Begin
k:=0; s:=0; {k- количество введенных чисел}
while k < N do
begin
k:=k+1;
write(‘Введите число’);
readln(x);
s:=s+x;
end;
writeln(‘Сумма чисел равна’, s);
end.
начало |
k<N |
k:=k+1 |
Ввод x |
+ |
- |
N:=10, k:=0, s:=0 |
s:=s+x |
s |
конец |
8. В автопарке, имеющем 18 машин марки КАМАЗ, каждый из КАМАЗов перевез за день определенный объем груза. Определить суммарный объем перевозок грузов за день.
Uses wincrt;
Type KAMAZ=array [1..18] of real;
Var
i:integer;
p:KAMAZ;
S:real;
Begin
S:=0;
For i:=1 to 18 do
Begin
Writeln(‘Введите объем перевозок’, I,‘-ой машины, т’);
Readln(p[i]);
S:=S+p[i]; End;
Writeln(‘Суммарный объем перевозок S=’,S:8:2,‘т’);
End.
конец |
начало |
i:=1..18 |
S:=0 |
+ |
- |
Ввод p[i] |
S:=S+p[i] |
S |
9. Известна среднемесячная зарплата всех 16 сотрудников одного отдела. Найти величину наибольшей среднемесячной зарплаты в отделе.
Uses wincrt;
Type ZARPL=array [1..16] of real;
Var
i:integer;
sotr:ZARPL;
max:real;
Begin
For i:=1 to 16 do
Begin
Writeln(‘Введите зарплату ’,I,‘-го сотрудника, руб.’);
Readln(sotr[i]);
End;
max:=sotr[1];
For i:=2 to 16 do
If max<sotr[i] then max:=sotr[i];
Writeln(‘Наибольшая зарплата =’, max:10:2, ‘руб.’);
начало |
Ввод sort[i] |
i:=1..16 |
+ |
- |
max:=sort[1] |
конец |
i:=2..16 |
max:=sort[i] |
max |
max<sotr[i] |
+ |
- |
+ |
- |
конец |
10. Известны результаты экзамена по информатике одной группы из 22 студентов. Определить, сколько студентов сдали экзамен на 4 и 5.
Текст программы:
Type INF=array[1..22] of integer;
Var
stud:INF;
i,p:integer;
begin
p:=0;
for i:=1 to 22 do
begin
stud[i]:=0;
while ((stud[i]<1) or (stud[i]>5)) do
writeln(‘Введите оценку ’,i,’-го студен-та’);
readln(stud[i]);
if stud[i]>3 then p:=p+1;
end;
writeln(‘На 4 и 5 сдали экзамен ’,p,’ сту-дентов’);
end.
начало |
p:=0 |
i:=1..22 |
+ |
- |
stud[i]<1) or (stud[i]>5) |
- |
+ |
- |
stud[i]:=0 |
Ввод stud[i] |
stud[i]>3 |
p:=p+1 |
- |
+ |
- |
+ |
На 4 и 5 сдали экзамен p сту-дентов |
конец |
11. Предположим, известны результаты соревнований по стрельбе, в которых принимали участие 9 человек. Расположить данные результаты в порядке возрастания набранных при стрельбе очков.
Type STREL=array[1..9]of integer;
Var
rez:strel;
i,j,s:integer;
Begin
For i:=1 to 9 do
begin
writeln(‘Введите результаты ’,i,’-го участни-ка’);
readln(rez[i]);
end;
for i:=1 to 8 do
for j:=i+1 to 9 do
if rez[i]>rez[j] then
begin
s:=rez[j];
rez[j]:=rez[i];
rez[i]:=s;
end;
writeln(‘Отсортированные по возрастанию результаты:’);
for i:=1 to 9 do write (rez[i]:5,’ ‘);
end.
начало |
i:=1..9 |
+ |
- |
Ввод rez[i] |
s:=rez[j], rez[j]:=rez[i], rez[i]:=s, |
i:=1..8 j:=i+1..9 |
+ |
- |
конец |
Отсортированные по возрастанию результаты: |
rez[i]>rez[j] |
+ |
- |
i:=1..9 |
+ |
- |
rez[i] |
12. Задан одномерный массив В (10), заполненный произвольным образом. Подсчитать количество элементов массива, больших заданного числа k.
Var b:array [1..10] of word;
I, k, s: word;
Begin
s:=0;
For i:=1 to 10 do
b[i]:=random(100);
Write(‘Введите число k’);
Readln(k);
For i:=1 to 10 do
If b[i]>k then s:=s+1;
Write(‘Количество элементов’, s);
End.
начало |
i:=1..10 |
+ |
- |
Ввод k |
b[i]:=random(100); |
s:=0 |
i:=1..10 |
b[i]>k |
s:=s+1 |
+ |
- |
+ |
- |
s |
конец |
13. Определить самую высокую температуру и самый теплый день в мае.
Var t:array [1..31] of integer;
I, max, n: integer;
Begin
For i:=1 to 31 do
Begin
t[i]:=random(30);
Write(b[i], ‘ ‘);
End;
max:=t[1]; n:=1;
For i:=2 to 31 do
Begin
If t[i] > max then max:=t[i]; n:=i;
End;
Write(‘максимальная температура’, max, ‘в’, n, ‘день’);
End.
начало |
i:=1..31 |
t[i]:=random(30) |
+ |
- |
b[i] |
max:=t[1] n:=1 |
i:=2..31 |
+ |
- |
t[i] > max |
- |
max:=t[i] n:=i |
max,n |
конец |
+ |
14. Пусть задана матрица А из действительных чисел размера 3х4. Найти наибольший элемент во второй строке данной матрицы.
Type Matr=array[1..3,1..4] of real;
Var max:real;
a:Matr;
i,j:integer;
begin
for i:=1 to 3 do
for j:=1 to 4 do
begin
writeln(‘Введите элемент а[‘,i,’,’,j,’]’);
readln(a[i,j]);
end;
max:=a[2,1];
for j:=2 to 4 do
if max<a[2,j] then max:=a[2,j];
writeln(‘Наибольший элемент второй строки=’,max:8:2);
max:=a[2,1] |
max:=a[2,j] |
j:=2..4 |
- |
начало |
+ |
i:=1..3 j:=1..4 |
+ |
конец |
max |
- |
+ |
- |
max<a[2,j] |
a[i,j] |
15. Известны результаты 5 студентов по итогам экзаменов по химии и информатике. Найти фамилии студентов, сдавших оба экзамена на отлично.
Program Sessia;
type PR=array [1..5,1..2]of integer;
Fam=array[1..5]of string[10];
var r:PR;
st:Fam;
i,j:integer;
begin
for i:=1 to 5 do
begin
writeln('Введите фамилию ',i,'-го сту-дента');
readln(st[i]);
writeln('Введите оценку данного сту-дента по химии (от 2 до 5)');
readln(r[i,1]);
writeln('Введите оценку данного сту-дента по информатике (от 2 до 5)');
readln(r[i,2]);
end;
for i:=1 to 5 do
if (r[i,1]=5) and (r[i,2]=5) then writeln('Студент-отличник - ',st[i]);
i:=1..5 |
- |
+ |
(r[i,1]=5) and (r[i,2]=5) |
- |
конец |
+ |
st[i] |
i:=1..5 |
+ |
- |
Ввод st[i], r[i,1], r[i,2] |
начало |
16. Сформировать таблицу Пифагора (таблица умножения) и вывести ее на экран.
Program Pifagor;
Uses crt;
Var p: array[1..9, 1..9] of integer; i, j:integer;
Begin
Clrscr;
for i:=1 to 9 do
for j:= 1 to 9 do
begin
p[i,j]:= i*j;
write(p[i,j], ‘ ‘);
writeln
end;
end.
i:=1..9 j:=1..9 |
+ |
- |
конец |
начало |
p[i,j]:= i*j |
p[i,j] |
17. Задан двумерный массив В(10, 10), заполненный случайными числами из [-10,10]. Найти и вывести на экран те элементы массива, которые
больше заданного числа k.
Program massiv;
Uses crt;
Var b: array[1..10, 1..10] of integer; i, j, k:integer;
Begin
Clrscr;
for i:=1 to 10 do
начало |
for j:= 1 to 10 do
begin
b [i,j]:= random(20)-10;
- |
i:=1..10 j:=1..10 |
end;
writeln;
end;
+ |
readln (k);
b [i,j]:= random(20)-10 |
For j:=1 to 10 do
If b[i, j] >k then write (b[i, j]);
конец |
b[i,j] |
+ |
- |
b[i, j] >k |
+ |
- |
i:=1..10 j:=1..10 |
Ввод k |
b[i,j] |
18. Дано предложение. Сколько слов является перевёртышами и будет ли это число совершенным.
var i,j,k,l,l1,sum,k1: longint;
a,b,c: string;
d: array [1..60] of longint;
begin
clrscr;
textcolor(11);
write('введите текст: ');
readln(a);
l:=length(a);
if (a[l]<>'.')or(a[l]<>'!')or(a[l]<>'?')
then begin
a[l+1]:=' ';
inc(l);
end
else a[l]:=' ';
for i:=1 to l do if (a[i]=' ')
then begin
l1:=length(b);c:='';
for j:=l1 downto 1 do c:=c+b[j];
if b=c then inc(k);b:='';
end
else b:=b+a[i];
if k=1 then begin
write('совершенное');
readln;halt;
end;
sum:=0;k1:=1;
for i:=1 to k-1 do if k mod i=0 then begin
d[k1]:=i;inc(k1);
end;
for i:=1 to k1-1 do sum:=sum+d[i];
if k=sum then write('совершенное')
else write('не совершенное');
readln;
end.
for |
начало |
l:=length(a) |
Ввод а |
- |
+ |
a[l+1]:=' ', inc(l); |
a[l]:=' ' |
(a[l]<>'.')or(a[l]<>'!')or(a[l]<>'?') |
- |
+ |
a[l]:=' ' |
l1:=length(b),c:='' |
j:=11..1 |
inc(k) |
+ |
+ |
c:=c+b[j] |
- |
a[l]:=' ' |
b:='' |
b:=b+a[i]; |
- |
i:=1.. k-1 |
k mod i=0 |
+ |
+ |
- |
- |
d[k1]:=i,inc(k1) |
i:=1..k1-1 |
+ |
- |
sum:=sum+d[i] |
k=sum |
+ |
- |
совершенное |
не совершенное |
конец |
k=1 |
+ |
- |
совершенное |
sum:=0, k1:=1 |
19. Найти значение выражения 1*1+2*2+...+n*n
var n,s,i: integer;
begin
write('n = ');
readln(n);
s:=0;
for i:=1 to n do
s:=s+i*i;
writeln('s = ',s);
readln;
end.
+ |
- |
конец |
s:=0 |
Ввод n |
i:=1.. n |
s:=s+i*i |
s |
начало |
20. Найти сумму.
var a,b,s: integer;
begin
clrscr;
write('a=');readln(a);
write('b=');readln(b);
s:=a+b;
write('сумма s=',s);
readln;
end.
s:=a+b |
s |
начало |
Ввод a,b |
конец |
21. Составить из двух таблиц 3-ю упорядоченную по возрастанию
var a: array [1..10] of longint;
b: array [1..20] of longint;
c: array [1..30] of longint;
n,m,k,l,i,j,min: longint;
begin
clrscr;
write('введ.кол.эл.таб.а n=');readln(n);
write('введ.кол.эл.таб.b m=');readln(m);
for i:=1 to n do
begin
write('a[',i,']=');readln(a[i]);
end;
for i:=1 to m do
begin
write('b[',i,']=');readln(b[i]);
end;
k:=n+m;{кол.эл.таб.с}
(*заносим эл.таб.а в таб.с*)
for i:=1 to n do c[i]:=a[i];
(*заносим эл.таб.в в таб.с*)
for i:=1 to m do c[i+n]:=b[i];
(*упорядочим таб.с[1..k] по возраст*)
for i:=1 to k-1 do
begin
l:=i;{номер мин.}min:=c[i];
for j:=i+1 to k do
if c[j]<min then
begin
min:=c[j];l:=j;
end;
c[l]:=c[i];{меняем местами 1-й и мин.эл.}
c[i]:=min;
end;
for i:=1 to k do writeln('Ответ:c[',i,']=',c[i]);
readln;
начало |
Ввод n,m |
+ |
- |
i:=1.. n |
Ввод a[i] |
- |
k:=n+m |
i:=1.. m |
+ |
Ввод b[i] |
i:=1.. m |
- |
+ |
c[i+n]:=b[i] |
i:=1.. n |
- |
+ |
c[i]:=a[i] |
конец |
i:=1.. k |
- |
+ |
c[i] |
c[l]:=c[i] c[i]:=min |
i:=i+1..k |
+ |
l:=i, min:=c[i] |
i:=1..k-1 |
+ |
c[j]<min |
+ |
min:=c[j], l:=j |
- |
- |
22. Найти максимальное число из трёх
var a,b,c,max: integer;
begin
clrscr;
write('a=');readln(a);
write('b=');readln(b);
write('c=');readln(c);
if (a>b) and (a>c) then max:=a;
if (b>a) and (b>c) then max:=b
else max:=c;
write('max=',max);
readln;
end.
(a>b) and (a>c) |
+ |
max:=a |
- |
Ввод a,b,c |
начало |
(b>a) and (b>c) |
+ |
max:=b |
- |
max:=c |
max |
конец |
23. Найти наибольшее из четырёх чисел.
var a,b,c,d,max,max1,max2: real;
procedure bol2(aa,bb: real; var maxmax: real);
begin
if aa>bb then maxmax:=aa
else maxmax:=bb;
end;
begin
clrscr;
write('введте a,b,c,d через пробел ');
readln(a,b,c,d);
bol2(a,b,max1);
bol2(c,d,max2);
bol2(max1,max2,max);
writeln('max=',max);
readln;
end.
1) Блок-схема процедуры:
bol2(aa,bb: real; var maxmax: real) |
aa>bb |
+ |
maxmax:=aa |
maxmax:=bb |
- |
конец |
начало |
Ввод a,b,c,d |
bol2(a,b,max1) |
bol2(c,d,max2) |
bol2(max1,max2,max) |
max |
конец |
24. Количествово букв "а" в тексте
uses crt;
var d: string;
n,i: integer;
begin
write('наберите текст ');
readln(d);
n:=0;
for i:=1 to length(d) do
if d[i]='а' then n:=n+1;
write('В тексте а=',n);
readln;
end.
начало |
Ввод d |
n:=0 |
i:=1..length(d) |
+ |
- |
d[i]='а' |
+ |
- |
n:=n+1 |
n |
конец |
25. Составить программу определения среднего арифметического
uses crt;
var a: array [1..10] of integer;
s: real;
sum,n,i: integer;
begin
clrscr;
write('n=');readln(n);
for i:=1 to n do
begin
write('a[',i,']=');
readln(a[i]);
начало |
sum:=0;
for i:=1 to n do
Ввод n |
s:=sum/n;
writeln('ср ариф= ',s);
- |
- |
i:=1..n |
end.
+ |
a[i] |
+ |
sum:=0 |
s |
i:=1..n |
sum:=sum+a[i]; |
s:=sum/n |
конец |
26. Записать программу возвед. числа а в степень n
var a,n,i,p: integer;
begin
clrscr;
write('n=');readln(n);
write('a=');readln(a);
p:=1;
начало |
write('p=',p);
readln;
Ввод n,a |
p |
p:=1 |
i:=1..n |
p:=p*a |
конец |
+ |
- |
27. Сост. прог. выч. факториала числа n.
Пример: 5!=1*2*3*4*5
7!=1*2*3*4*5*6*7 }
var f,n,i: integer;
begin
clrscr;
write('n=');readln(n);
f:=1;
for i:=1 to n do f:=f*i;
write('f=',f);
readln;
f:=f*i |
f:=1 |
Ввод n |
начало |
конец |
f |
+ |
- |
i:=1..n |
28. Написать программу подсчета количества часов, минут и секунд в данном количестве суток.
uses crt;
var syt,has,min,sec: extended;
begin
clrscr;
write('сут = ');
readln(syt);
has:=24*syt;
min:=60*has;
sec:=60*min;
writeln('часов: ',has:0:0);
writeln('минут: ',min:0:0);
writeln('секунд: ',sec:0:0);
readln;
Ввод syt |
начало |
has:=24*syt min:=60*has sec:=60*min |
has, min, sec |
конец |
29. Составить программу проверки есть ли в тексте буква "s"
var t: string;
i: integer;
ot: boolean;
begin
clrscr;
writeln('введите текст:');readln(t);
ot:=false;
for i:=1 to length(t) do
if t[i]='s' then ot:=true;
if ot=true then write('да')
else write('нет');
readln;
Ввод t |
начало |
i:=1..length(t) |
конец |
ot:=false |
+ |
- |
t[i]='s' |
+ |
- |
ot;=true |
ot=true |
+ |
- |
Да |
Нет |
30. Найти значение выражения (-натуральное число, а>0, х>0, у=1+(1/(1+(1/1+...1+1/x))..)) n знаков "+"
uses crt;
var x,n,i: integer;
y: real;
begin
clrscr;
write('n=');readln(n);
write('x=');readln(x);
y:=x;
for i:=1 to n do y:=1+1/y;
write('y=',y);
readln;
end.
i:=1..n |
начало |
Ввод n,x |
y:=x |
y:=1+1/y |
y |
конец |
+ |
- |
31. Найти значение выражения (-нат. число, а>0, х>0, f=sqr(a+sqr(a+sqr(a+..sqr(a))..)) n знаков "+"
uses crt;
var a,n,i: integer;
f: real;
begin
clrscr;
write('n=');readln(n);
write('a=');readln(a);
f:=a;
for i:=1 to n do f:=a+sqr(f);
write('f = ',f);
readln;
f:=a+sqr(f) |
f:=a |
Ввод n,a |
начало |
i:=1..n |
- |
конец |
f |
+ |
32. Дано предложение составить программу располагающую слова в порядке убывания длины слов
uses crt;
type slov = array [1..10] of string;
var p,b: string;
s: slov;
i,j,l: integer;
q: boolean;
procedure maxdl(ii,jj: integer;ss: slov; var ll: integer);
var t:integer;m:string;
begin
m:=ss[ii]; { считает max(t) }
ll:=ii; { l-номер max }
for t:=ii+1 to jj do
if length(m)<length(ss[t]) then
begin
m:=ss[t];
ll:=t;
end;
end {maxdl};
begin
clrscr;
write('текст p=');readln(p);
j:=1;
for i:=1 to length(p) do
begin
b:=p[i];
if b=' ' then j:=j+1
else s[j]:=s[j]+b;{ склеивание слова и заносим в таб }
end;
b:='';
for i:=1 to j do
begin
maxdl(i,j,s,l); { находим номер мах элм }
b:=s[i]; { меняем местами мах элм: }
s[i]:=s[l];
s[l]:=b;
end;
for i:=1 to j do write(s[i],' ');
readln;
end.
1 Блок-схема процедуры.
конец |
t:=ii+1.. jj |
Maxdl(ii,jj:integer; ss:slov;var ll:integer) |
m:ss[ii], ll:=ii |
t:=ii+1.. jj |
length(m)<length(ss[t]) |
m:=ss[t],ll:=t |
+ |
- |
- |
+ |
2 Блок-схема основной программы.
конец |
i:=1..length(p) |
начало |
Ввод p |
j:=1 |
b:=p[i] |
+ |
- |
b=’’ |
j:=j+1 |
s:=s[i]+b |
b:=’’ |
i:=1..j |
maxdl(i,j,s,l) |
b:=s[i],s[i]:=s[l], s[l]:=b |
i:=1..j |
s[i] |
+ |
- |
- |
+ |
+ |
- |
33. Дана вещ. таблица a[1..n].
Найти кол-во отрицательных элементов таблицы. }
uses crt;
var k,n,i: longint;
a: array [1..10] of longint;
begin
clrscr;
write('n = ');readln(n);
for i:=1 to n do
begin
write('a[',i,']=');readln(a[i]);
end;
for i:=1 to n do
Ввод n |
начало |
write('k = ',k);
readln;
end.
+ |
- |
i:=1..n |
inc(k) |
i:=1..n |
a[i]<0 |
a[i] |
k |
конец |
+ |
- |
- |
+ |
34. Найти максимальный элемент таблицы а[1..10]
uses crt;
var a: array [1..10] of longint;
max,i,n: longint;
begin
clrscr;
write('n = ');readln(n);
for i:=1 to n do
begin
a[i] |
Ввод n |
начало |
i:=1..n |
end;
max:=a[1];
for i:=2 to n do
if a[i]>max then max:=a[i];
write('max = ',max);
readln;
end.
max:=a[i] |
i:=2..n |
a[i]>max |
max |
конец |
+ |
- |
- |
+ |
max:=a[1]; |
+ |
- |
35. Дана таблица [1..n] из целых чисел. Получить элементы, которые находятся между max и min
const L=20
type massiv=array[1..L] of integer;
var tabl:massiv;
n,i,max,min:integer;
begin
writeln(‘>n’);
readln(n);
for i:1 to n do
begin
writeln(i,’й элемент=’);
readln(tabl[i]);
end;
max:=tabl[1];
min:=tabl[1];
for i:=2 to n do
begin
if tabl[i]>max
then max:=tabl[i];
if tabl[i]<min
then min:=tabl[i]
end;
for i:1 to n do
if (tabl[i]>min) and (tabl[i]<max) then
writeln(i,’й элемент=’,tabl[i]);
readln;
end.
i:=1..n |
начало |
Ввод n |
max:=tabl[1],min:=tabl[1] |
- |
+ |
Ввод tabl[i] |
i:=2..n |
tabl[i]>max |
tabl[i]<min |
min:=tabl[i] |
max:=tabl[i] |
tabl[i],i |
(tabl[i]>min) and (tabl[i]<max) |
i:=1..n |
конец |
- |
+ |
- |
+ |
+ |
- |
+ |
- |
- |
+ |
36. Составить программу для определения лежит ли точка (x3;y3),
на прямой проходящей через точки (x1;y1),C(x2;y2)
uses crt;
var v,x1,x2,x3,y1,y2,y3: real;
begin
clrscr;
write('x1=');readln(x1);
write('y1=');readln(y1);
write('x2=');readln(x2);
write('y2=');readln(y2);
write('x3=');readln(x3);
write('y3=');readln(y3);
v:= (x3-x1)*(y2-y1)-(y3-y1)*(x2-x1);
if v=0
then write('лежит')
else write('не лежит');
readln;
end.
+ |
- |
начало |
Ввод x1,x2,x3,y1,y2,y3 |
v=0 |
v:= (x3-x1)*(y2-y1)-(y3-y1)*(x2-x1); |
конец |
лежит |
не лежит |
37. Найти номер максимального элемента таблицы а[1..10]
uses crt;
var a: array [1..100] of longint;
k,i,n,max: longint;
begin
Ввод n |
max:=a[1];k:=1 |
конец |
i:=1.. n |
начало |
- |
+ |
k |
write('n=');readln(n);