| Главная » Файлы » В помощь учителю » Информатика |
| [ Скачать с сервера (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. | |
| Просмотров: 1684 | Загрузок: 568 | Комментарии: 1 | | |
Форма входа |
|---|
Категории раздела | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Социальные закладк |
|---|
Поиск |
|---|
Друзья сайта |
|---|
Теги |
|---|
Статистика |
|---|