Коллеги - педагогический журнал Казахстана

Наша библиотека

Главная » Файлы » В помощь учителю » Информатика

Система задач и упражнений по языку программирования Pascal Часть 1
[ Скачать с сервера (780.0 Kb) ] 2012-05-31, 6:00 PM
14. Что делает данный фрагмент программы?
(1).for i:=1 to length(A) do
if copy(A,i,1)='o' then begin
delete(A,i,1); insert('a',A,i);
end; (6).for i:=1 to length(A) do
begin c:=copy(A,i,1);
insert(c,A,2*i-1);
end;
(2).s:='абракадабра'; i:=1;
while i<=length(s) do
if copy(s,I,1)='а' then delete(s,i,1)
else i:=i+1; (7).p:='информатика'; i:=1;
while i<=length(p) do
if copy(p,i,1)='и' then delete(p,i,1)
else i:=i+1;
(3).k:=length(A);
if k/2=trunc(k/2)
then delete(A,1,1)
else delete(A,k,1); (8).k:=length(A);
if k/2=trunc(k/2)
then delete(A,trunc(k/2),2)
else delete(A,trunc(k/2),1);
(4).for i:=1 to length(A) do
insert(copy(A,I,1),A,2*i-1); (9).k:='каракатица'; i:=1;
while i<=length(k) do
if copy(k,i,1)='a'
then delete(k,i,1)
else i:=i+1;
(5).b:=trunc(length(k)/2);
for i:=1 to b do
k:=copy(k,1,i-1)+copy(k,length(k)-i+1,1)+copy(k,i+1,length(k)-2*i)+copy(k,i,1)+copy(k,length(k)-i+2,i-1);
15. Дополните описание стандартных процедур и функций обработки строковых переменных в соответствии с образцом, данным в пунктaх а) и e):
(1). procedure delete(var a: string; i: integer; j: integer);
(2). procedure insert();
(3). procedure val();
(4). procedure str();
(5). function length(a:string):integer;
(6). function concat();
(7). function copy();
(8). function pos();
(9). function ord();
(10). function chr();
16. Используя функции и процедуры обработки литерных данных перепишите команды:
(1) t:=copy(t,3,length(t)-2); через delete;
(2) t:=copy(t,1,2)+y+copy(t,3,length(t)-2); через insert;
(3) delete(t,3,1) через copy;
(4) insert(b,t,4) через copy.
17. Запишите в виде команды:
(1) если в слове нечетное число букв, то в конце поставить '*';
(2) если в слове нечетное число букв, то в начале поставить '!';
(3) поставить '.' в конце данного предложения, если 'а' там нет (использовать оператор insert).
18. Напишите фрагмент программы:
(1). Проверки: является ли слово палиндромом.
(2). Подсчета количества слов в предложении.
(3). Удаления символов, стоящих на нечетных местах.
(4). Вставки после каждого символа слова восклицательного знака.
(5). Удаления лишних пробелов между словами предложения.
(6). Замены одной точки на многоточие.
(7). Проверки: есть ли в слове символы отличные от букв.
(8). Обмена местами первого и последнего слов в предложении.
(9). Инвертирования каждого слова в предложении.
(10). Разбиения слова на слоги.
(11). Разбиения слова на склады (Склад – это пара согласная + гласная или одна из нескольких идущих подряд гласных или согласных. Например: О БО З РЕ НИ Е).
Процедуры и функции
1. В каком месте программы и в каком порядке располагаются функции и процедуры? Сравните с алгоритмическим языком.
2. Что такое локальные и глобальные переменные и как они различаются на языке Паскаль? Сравните с алгоритмическим языком.
3. Как выглядит заголовок процедуры на языке Паскаль?
4. Как выглядит заголовок функции на языке Паскаль?
5. Что собой представляет содержательная часть процедуры на языке Паскаль?
6. Что собой представляет содержательная часть функции на языке Паскаль?
7. Как различить по заголовку процедуры на языке Паскаль аргументы, результаты и промежуточные величины?
8. Сравните правила записи процедур на Паскале и на школьном алгоритмическом языке.
9. Сравните правила записи функций на Паскале и на школьном алгоритмическом языке.
10. Сформулируйте правила обращения к функции и к процедуре.
11. Что такое формальные и фактические параметры?
12. Какая взаимосвязь существует между формальными и фактическими параметрами?
13. Какие виды параметров могут быть указаны при описании процедуры или функции в ее заголовке?
14. Для чего используются параметры-значения?
15. Для чего используются параметры-переменные?
16. Найдите синтаксические ошибки в следующих командах:
(1). Procedure (var a:real, b,s:char; var d:real);
(2). Procedure(b[1]+b[2],b[2]+b[3],b[3]+b[1],b[2]);
(3). Procedure str(a;b;c:integer; var s:real);
(4). ...
a. str(k[1],k[2],k[3],k[4]);
(5). 4.procedure prim(k:real; var p,integer)
...
a. prim(a+b,a-b); (6). 5.function r(a:real;var b;t:real);
(7). ...
a. k:=r(A[3],A,r);
(8). 6.function g(var a,b:integer):integer;
...
a:=g(a[i],g);
17. Перечислите, какие переменные в следующей процедуре являются локальными, глобальными, аргументами, результатами.
(1). procedure multiply(d:stroka;var P:real);
var i:integer;
begin
P:=1;
For i:=1 to n do
if d[i]<>0
then P:=P*d[i];
end; (2). procedure quantity(n:integer;var k:integer);
var i:integer;
begin
k:=0;
for i:=1 to n do if d[i]<0 then k:=k+1;
end;
(3). procedure poisk(n:integer;var k:char);
var i:integer;
begin
k:='н';
for i:=1 to n do if d[i]=13 then k:='д';
end; (4). procedure summa(n:integer;var s:real);
var i:integer;
begin
s:=0;
for i:=1 to n do s:=s+d[i];
end;
(5). procedure maximum(d:stroka;var max:real);
var i:integer;
begin
max:=d[1];
for i:=2 to n do
if d[i]>max then max:=d[i];
end; (6). procedure maxmod(d:vector);
var i:integer;
begin
max:=abs(d[1]);
for i:=2 to n do
if abs(d[i])>max then max:=d[i];
end;
18. Написать заголовок следующих процедур и функций:
delete, insert, chr, ord, val, str, copy, length, concat, pos.
19. Перепишите процедуры из пункта 17 в виде функций.
20. Изучите программу PR1 и ответьте на следующие вопросы:
1) назовите переменные, локальные для процедуры pr3 и недоступные для процедуры pr2 и основной программы;
2) назовите переменные, являющиеся глобальными для процедуры pr3, недоступные в основной программе, но локальные для процедуры pr2;
3) назовите переменные, являющиеся глобальными как для процедуры pr2, так и для процедуры pr3.
program PR1;
var A, B, C: real;
procedure pr2;
var X, Y, Z: real;
procedure pr3;
var i, j, k: real;
begin

end;
begin

end;
begin

end.
21. Изучите программу PR и ответьте на следующие вопросы:
1) какие переменные, являясь одна локальной, а другая глобальной, имеют одно и то же имя?
2) будет ли переменная L иметь одно и то же значение в основной программе и в процедуре pr3?
3) доступна ли переменная L, описанная в основной программе, в процедурах pr3 и pr4?
4) окажет ли влияние на переменную L, описанную в основной программе, изменение значения переменной L, описанной в процедуре pr3?
program PR;
var L, D, F: real;
procedure pr2;
var M, N: integer;
begin

end;
procedure pr3;
var L, L4: integer;
procedure pr4;
var L5: integer;
begin

end;
begin

end;
begin

end.

22. Какой смысл имеет величина k в следующей серии команд
(1). k:=0;
for i:=1 to n do
begin
g:=summamod(a[i]);
if g=0 then k:=k+1
end; (2). k:=0;
for i:=1 to n do
begin
g:=summamod(a[i]);
maximummod(a[i],l,ma);
if g=ma then k:=k+1 end;
(3). k:=0;
for i:=1 to n do begin
g:=summamod(a[i]);
d:=summa(a[i]);
if g=d then k:=k+1;
end; (4). k:=0;
for i:=1 to n do begin
maximum(a[i],g,ma);
if ma<0 then k:=k+1
end;
(5). k:=0; k:=0;
for i:=1 to n do begin
maximum(a[i],g,ma);
maximummod(a[i],l,mam);
if mam<>ma then k:=k+1;
end; (6). k:=0;
for i:=1 to n do
begin g:=summamod(a[i]);
d:=summa(a[i]);
if g<>abs(d) then k:=k+1;
end;
23. Составьте процедуры для:
(1). ввода одномерного числового массива,
(2). вывода одномерного числового массива,
(3). ввода двумерного числового массива,
(4). вывода двумерного числового массива,
(5). нахождения суммы элементов одномерного массива,
(6). нахождения суммы элементов двумерного массива,
(7). нахождения произведения элементов одномерного массива,
(8). нахождения номера максимального элемента одномерного массива,
(9). нахождения номеров максимального элемента двумерного массива,
(10). нахождения номера последнего отрицательного элемента массива,
(11). нахождения номера первого нулевого элемента одномерного массива,
(12). подсчета в данном слове количества вхождений заданной буквы,
(13). определения, есть ли в данном слове две одинаковые буквы подряд.


Приложение
Тексты программ для выполнения лабораторных работ
Файл PRIMER1.pas
program upr1;
uses crt;
var f,i,o:string[15]; v,g,year:integer;
begin
clrscr;
write('Введите номер текущего года ');readln(year);
write('Введите Вашу фамилию ');readln(f);
write('Введите Ваше имя ');readln(i);
{write('Введите Ваше отчество ');readln(o);}
write('Введите Ваш возраст ');readln(v);
write('Введите номер Вашей группы ');readln(g);

gotoxy (15,15);write('Ваша фамилия - ',f);
gotoxy (1,17);write('Вас зовут ',i);
{gotoxy (5,18);write('Ваше отчество ',o);}
gotoxy (51,20);write('Вы родились в ',year-v,’ году’);
gotoxy (11,25);write('Вы учитесь в ',g,’ группе’);
end.

Файл PRIMER2.pas
Begin
clrscr;
soob:='Круговой сектор';
write(soob,' ','R=');readln®;
write('alpha=');readln(alpha);
s:=r*r*alpha/2;
writeln('S=',S:3:0);
writeln('l=',2*S/r:5:2);
end. Файл PRIMER3.pas
program upr4;
uses crt;
var a,b,c:real;
begin
{Соотношения в прямоугольном треугольнике}
write('a=');readln(a);
write('b=');readln(b);
c:=sqrt(a*a+b*b);
write('c=',c);
end.
Файл PRIMER2à.pas
program upr4;
uses crt;
var r,s,alpha:real;
soob:string[15];
begin clrscr;
soob:='Круговой сектор';
write(soob,' ','R=');readln®;
write('alpha=');readln(alpha);
s:=r*r*alpha/2;
writeln('S=',S:9);
writeln('l=',2*S/r:5:2);end. Файл PRIMER4.pas
Program upr1;
Uses crt;
var b:char;
begin clrscr;
write('input letter ');readln(b);
writeln(b+b+b+b+b+b);
writeln(b,' ',b); writeln(b,' ',b);
writeln(b,' ',b); writeln(b,' ',b);
writeln(b,' ',b);
writeln(b+b+b+b+b+b);
end.
Файл PRIMER7.pas
program lab6;
uses crt;
var a,i,s,n,k,b,d:integer;
soob:string;
y,x:real;
begin
clrscr;
write('a=');readln(a);
write('b=');readln(b);
{ 2.1 while -> for }
{soob:='no';
i:=2;
while i<=sqrt(a) do begin
if a mod i=0
then soob:='yes';
i:=i+1;
end;
writeln(soob);}
{ 2.2 repeat -> for }
{i:=1;
repeat
i:=i+1;
if a mod i=0
then writeln (i);
until i>a/2;}
{ 2.3 for -> repeat }
{s:=0;
for i:=1 to trunc(a/2) do
if a mod i=0
then s:=s+i;
if s=a
then writeln('yes')
else writeln('no');}
{ 2.4 repeat -> for }
{n:=1; k:=10;
repeat
k:=k*10;
n:=n+1;
until a<=k;
writeln(n);}
{ 2.5 repeat -> for }
{k:=0;
repeat
s:=a-trunc(a/10)*10;
a:=trunc(a/10);
k:=(k+s)*10;
until a=0;
writeln (k/10:2:0);}

{ 2.6 while -> for }
{y:=a;n:=1;
while n<=6 do
begin x:=y;
y:=(5+x)/2;
n:=n+2;
end;
writeln(y:5:4);}
{ 2.7 for -> while }
{for i:=1 to a do
begin
if trunc(a/i)=a/i
then writeln(i);
i:=i+1;
end;}
{ 2.8 while -> repeat }
{if b>a
then begin a:=a+b;
b:=a-b;
a:=a-b; end;
writeln('a=',a,' b=',b);
k:=a mod b;
n:=b;
while k<>0 do begin
d:=k;
k:=n mod k;
n:=d;
end;
writeln(n);}
end.


Файл lab10.pas
program str_lab;
uses crt;
type str=string[50];
mass=array[1..20] of str;
var s,s1,s2,s3:str;
i,j,k,l,n,t:integer;
x:mass;
{----------------------------------------}
function poisk(s1,s2:str):str;
var i:integer;k:str; {----------------------------------------}
function quantity(s1,s2:str):integer;
var i,k:integer;
begin
k:=0;
for i:=1 to length(s2)-length(s1)+1 do
if copy(s2,i,length(s1))=s1
then k:=k+1;
quantity:=k;
end;
begin
k:='no';
for i:=1 to length(s2)-length(s1)+1 do
if copy(s2,i,length(s1))=s1
then k:='yes';
poisk:=k;
end;
{----------------------------------------}
procedure invers(var s1:str);
var i:integer;k:str;
begin
k:='';
for i:=1 to length(s1) do
k:=copy(s1,i,1)+k;
s1:=k;
end;
{----------------------------------------}
procedure double(var s1:str);
var i:integer;k:str;
begin
k:='';
for i:=1 to length(s1) do
k:=k+copy(s1,i,1)+copy(s1,i,1);
s1:=k;
end;
{----------------------------------------}
procedure zamena(var s1:str; s2,s3:str);
var i:integer;k:str;
begin
k:='';
for i:=1 to length(s1) do
if copy(s1,i,length(s2))=s2
then begin k:=k+s3; i:=i+length(s2)-1; end
else k:=k+s1[i];
s1:=k;
end; {----------------------------------------}
procedure del(var s1:str; s2:str);
var i:integer;k:str;
begin
zamena(s1,s2,'');
end;
{----------------------------------------}
procedure slova(s:str;var k:integer; var x:mass);
var i:integer;
begin
repeat
zamena(s,' ',' ');
until pos(' ',s)=0;
if s[length(s)]=' '
then delete(s,length(s),1);
k:=0;
repeat
l:=pos(' ',s); k:=k+1;
x[k]:=copy(s,1,l-1); delete(s,1,l);
until pos(' ',s)=0;
k:=k+1;
x[k]:=s;
end;
{----------------------------------------}
procedure printmass(k:integer; x:mass);
var i:integer;
begin
for i:=1 to k do writeln(x[i]);
end;
begin clrscr;
s2:= '11 52 3 15 467 15';
writeln(s2);
slova(s2,k,x);
printmass(k,x);
end.



Файл lab11.pas


program matrix_lab; uses crt; type st=array[1..20] of real;
matr=array[1..20] of st; var n, m, j, i, k, l, r: integer; s,s1,s2,s3,ext:real; x,y:st; a:matr; {-------------------------------------}
function summa(m:integer; x:st):real;
var i:integer; s:real;
begin s:=0;
for i:=1 to m do s:=s+x[i];
summa:=s;end;
{-------------------------------------}
function summamod(m:integer; x:st):real;
var i:integer; s:real;
begin s:=0;
for i:=1 to m do s:=s+abs(x[i]);
summamod:=s;
end;
{-------------------------------------}
procedure wwod(var a:matr);
var i,j:integer;
begin clrscr;
write('k-vo strok=');readln(n);
write('k-vo stolb=');readln(m);
for i:=1 to n do begin
for j:=1 to m do begin
write('a[',i,',',j,']=');read(a[i,j]);
end; writeln; end; end;
{-------------------------------------}
procedure wywod;
var i,j:integer;
begin
for i:=1 to n do begin
for j:=1 to m do write(a[i,j]:3:2,' ');
writeln;end; writeln; end;
{-------------------------------------}
procedure priswaiwanie;
begin n:=3;m:=4; a[1,1]:=3; a[1,2]:=0; a[1,3]:=-5;a[1,4]:=3;
a[2,1]:=-4; a[2,2]:=-1;a[2,3]:=-2; a[2,4]:=-3;
a[3,1]:=1; a[3,2]:=3; a[3,3]:=0; a[3,4]:=8; end;
{-------------------------------------}
procedure znak(m:integer; var x:st);
var i:integer;
begin for i:=1 to m do x[i]:=-x[i]; end;
{-------------------------------------}
procedure maximum(m:integer; x:st; var max:real; var k:integer);
var i:integer;
begin max:=x[1];k:=1;
for i:=2 to m do if x[i]>max then begin max:=x[i];k:=i;end; end;
{-------------------------------------}
procedure maximummod(m:integer; x:st; var max:real; var k:integer);
var i:integer;
begin max:=abs(x[1]);k:=1;
for i:=2 to m do if abs(x[i])>max then begin max:=abs(x[i]);k:=i;end; end;
{-------------------------------------}
begin clrscr;
wwod(a); wywod;
for i:=1 to n do
begin s:=summa(m,a[i]); writeln(i,'str. s=',s:3:2); end;
end.


Файл Polinom.pas
program polinoms;
uses crt;
type polinom=array[0..50] of real;
var a,b,c,d:polinom;
n1,n2,n3,n4,i,j,k,n:integer;
f,g,h,t,q,r:real;

procedure intput(var n:integer; var p:polinom);
var i:integer;
begin
write('Введите степень многочлена n=');readln(n);
writeln('Введите коэффициенты многочлена, начиная со старшего.');
for i:=n downto 0 do readln(p[i]);
end;

procedure output(n:integer; p:polinom);
var i:integer;
begin
for i:=n downto 0 do write(p[i]:3:2,' ');
writeln;
end;

procedure sum(n:integer; p:polinom;
k:integer; q:polinom;
var m:integer; var r:polinom);
var i:integer;
begin
if k<n
then m:=n
else m:=k;
for i:=0 to m+n-k do r[i]:=p[i]+q[i];
if k<n
then for i:=k+1 to n do r[i]:=p[i]
else if k>n
then for i:=n+1 to k do r[i]:=q[i];
end;

procedure num_mult(n:integer; p:polinom;
k:integer;
var m:integer; var r:polinom);
var i:integer;
begin
m:=n;
for i:=0 to m do r[i]:=k*p[i];
end;

procedure multiply(n:integer; p:polinom;
k:integer; q:polinom;
var m:integer; var r:polinom);
var i,j:integer;
begin
m:=n+k;

for i:=0 to m do r[i]:=0;
for i:=0 to n do
for j:=0 to k do
r[i+j]:=r[i+j]+p[i]*q[j];
end; procedure division(n:integer; p:polinom;
m:integer; q:polinom;
var k:integer; var c:polinom;
var r:integer; var s:polinom);
var i:integer;
begin
if n<m
then begin k:=0;c[0]:=0;
r:=n;
for i:=0 to n do s[i]:=p[i];
end
else
begin
k:=n-m;
for i:=k downto 0 do
begin
c[i]:=p[m+i]/q[m];
for j:=m downto 0 do
p[j+i]:=p[j+i]-c[i]*q[j];
end;
r:=m-1;
for j:=0 to r do s[j]:=p[j];
end;
end;

procedure derivation(n:integer; p:polinom;
var m:integer; var r:polinom);
var i:integer;
begin
m:=n-1;
for i:=m downto 0 do
r[i]:=(i+1)*p[i+1];
end;

procedure value(n:integer; p:polinom;
c:real;
var m:real);
var i,t:integer;
b,r:polinom;
begin
i:=1;b[1]:=1;b[0]:=-c;
division(n,p,i,b,t,r,i,b);
m:=b[0];
end;

begin
clrscr;
writeln('Введите первый многочлен');intput(n1,a);
writeln(' Введите второй многочлен '); intput(n2,b);
division(n1,a,n2,b,n3,c,n4,d);
writeln('Частное равно');
output(n3,c);
writeln('Остаток от деления');
output(n4,d);
writeln('Сумма коэффициентов первого многочлена равна');
value(n1,a,1,f);writeln(f);
end.
Категория: Информатика | Добавил: Nureke89
Просмотров: 1684 | Загрузок: 568 | Комментарии: 1 | Рейтинг: 0.0/0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Пятница, 2026-02-20, 2:21 AM
Приветствую Вас Гость

Форма входа

Категории раздела

Психология [194]
Педагогика [338]
Математика [864]
Физика [274]
История [385]
Классному руководителю [571]
Русский язык и литература [768]
Физическая культура [246]
Английский язык [456]
Искусство [204]
Родительский совет [19]
Биология [360]
Информатика [398]
Начальная школа [2040]
Мой Казахстан [258]
Технология [147]
Самопознание [197]
Технология труда [66]
Персональная рубрика учителя технологии труда Шукурова Суюнгали Сагинтаевич. Западно-Казахстанская область,Жанибекский район,СОШ имени Т.Жарокова
НВП и ОБЖ [47]
Профессиональное образование [180]
Дошколенок [574]
География [142]
Школьная библиотека [55]
Казахский язык и литература [642]
Химия [54]

Социальные закладк

Поиск

Друзья сайта

Академия сказочных наук

  • Теги

    презентация Ирина Борисенко Информатика флипчарт животные новый год творчество логика геометрия глагол задачи Казахские пословицы Физика Зима язык Алгебра класс здоровый образ жизни педагогика стихи МАТЕМАТИКА Урок праздник музыка доклад программа литература география природа семья воспитание осень игра загадки Начальная школа Тест трудовое обучение технология Сказка ЗДОРОВЬЕ вода путешествие Оксана 8 марта искусство Английский язык театр психология учитель мир 3 класс Биология Классный час ЕНТ выпускной Школа 1 класс русский язык ЕГЭ Тесты ХИМИЯ начальные классы дети экология астана дошкольники любовь день учителя казахский язык самопознание английский родители добро Конспект спорт патриотизм дружба концерт история обучение чтение немецкий язык краеведение библиотека тренинг хореография разработка Физическая культура English Великая Отечественная Война Игры КВН логопедия Интеграция песня Детский сад День Победы воздух Абай коучинг

    Статистика

    Рейтинг@Mail.ru