Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SODERZhANIE_Uch_Pr_dlya_PI.docx
Скачиваний:
6
Добавлен:
28.09.2019
Размер:
682.73 Кб
Скачать
  1. Задания для самостоятельной работы

На языке программирования Pascal написать программы в соответствии с вашим вариантом. Задачи должны быть решены алгоритмически и на языке программирования Pascal.

  1. В заданном тексте подсчитать наибольшее количество подряд идущих пробелов.

var text: string;

max,dl,schet,i: worol;

begin

writeln(‘введите текст’,’’);

dl:=length(text);

max:=a; m:=0;

for i:=1 to dl do

if i=’’ then Jnc(m) else

begin

if m>max then max:=m;

m:=0;

начало

end;

writeln(‘максимальное кол-во:’,max);

readln;

e

dl:=length(text)

max:=a; m:=0

nd.

i:=1..dl

-

max

i=’’

конец

Jnc(m)

+

-

+

m>max

max:=m

m:=0

+

-

  1. Из заданного текста удалить те его части, которые заключены в кавычки (вместе с кавычками).

var text: string;

i,kol,met1,met2,dl:worol;

begin

writeln(‘вводите текст:’);

readln(text);

dl:=length(text);

kol:=0; met1:=0; met2:=0;

for i:=1 to dl do

begin

if (kol=1) and (text[i]=’ ’) then

begin

kol:=2;

met2:=i-met1+1;

end;

if kol=2 then

begin

delete(text,met1,met2);

met1:=0;

met2:=0; kol:=0;

end;

if (text[i]=’ ’) and (kol=0) then

begin

kol:=0;

met1:=i;

end;

end;

writeln(text);

readln;

end.

text

начало

(kol=1) and (text[i]=’ ’)

конец

kol:=2

met2:=i-met1+1

i:=1..dl

dl:=length(text)

kol:=0;met1:=0 met2:=0

-

Ввод text

-

kol=2

delete(text,met1,met2)

met1:=0

met2:=0, kol:=0

-

+

+

(text[i]=’ ’) and (kol=0)

kol:=0

met1:=i

-

+

+

  1. Осуществить циклический сдвиг компонент заданного вектора A(N) вправо на две позиции, то есть получить вектор A= (a n-1, an,a1,a2,…,an-2)

const L=20; sd=2;

type VEKT=array[1..L] of integer;

var b,a:VEKT;

i:integer;

begin

write(‘введите вектор,’ ’);

for i:=1 to L do

read(a[i]);

for i:=1 to L do

-

Ввод a[i]

+

i:=1..L

-

начало

Ввод a[i]

+

-

begin

if i<=sd then b[ i]:=a[L-sd+i]

else b[i]:=a[i-sd];

write(b[i]);

end;

readln;

end.

конец

i:=1..L

i<=sd

+

b[i]:=a[i-sd]

+

-

b[i]

b[ i]:=a[L-sd+i]

  1. В заданном массиве A(N) определить число соседств:

А

начало

) двух положительных чисел;

Б) двух чисел разного знака;

В ) двух чисел одного знака.

c

kpd:=0; kraz:=0; kod:=0

onst L=20

type chsod=array[1..L] of integer;

var a: chsod;

i:=1..L

-

i,kpd,kraz,kod:word;

b egin

kpd:=0; kraz:=0; kod:=0;

+

for i:=1 to L do begin

Ввод a[i]

write (’a[’,i’,]=’);

readln(a[i]);

end;

for i:=1 to L-1 do

begin

if (a[i]>0) and (a[i+1]>0) then

i:=1..L-1

-

kpol:=kpol+1;

if a[i]*a[i+1]<0 then kraz:=kraz+1;

if a[i]*a[i+1]>0 then kod:=kod+1;

end;

-

write(‘положительных:’,kpol);

(a[i]>0) and (a[i+1]>0)

+

write(‘разных знаков:’,kraz);

write(‘одинаковых знаков:’,kod);

kpol:=kpol+1

readln;

e nd.

kpol,kraz,kod

kraz:=kraz+1

a[i]*a[i+1]<0

a[i]*a[i+1]>0

kod:=kod+1

-

-

-

+

+

конец

  1. Используя сведения о ежемесячных выплатах зарплаты сотрудникам фирмы, выяснить, не оказалась ли годовая зарплата кого-либо из сотрудников ниже годового минимума, оговоренного в его контракте.

Const chel=20

Type people=array[1..chel] of string;

price=array[1..12] of word;

Var k,i,j:byte;

s,min:word;

spis,pera:people;

plata:price;

begin

writeln(’введите размер минимальной зарплаты’);

readln(min);

s:=0;

k:=0;

for i:=1 to chel do

begin

write(’имя сотрудника:’);

readln(pers[i]);

write(‘его зарплата’);

for j:=1 to 12 do

begin

writeln(j,-й месяц:’);

readln(plata[j]);

s:=s+plata[j];

end;

if s<min then

begin

k:=k+1;

spis[k]:=pers[i];

end;

s:=0;

end;

writeln(‘список работников с платой минимальной’);

for i:=1 to k do

writeln(spis[i]);

readln;

end.

начало

s:=0;

k:=0;

-

s:=s+plata[j]

s<min

Ввод plata[j]

i:=1..12

s:=0

i:=1.. k

spis[i]

-

-

+

+

+

i:=1..chel

Ввод pers[i]

k:=k+1 spis[k]:=pers[i]

конец

  1. Элементы заданного массива x = (x1,x2,x3,…,xn) переупорядочить следующим образом: x= (xn, xn-1,…x1)

const L=20;

type massiv=[1..L] of integer;

var i:integer;

x,b:massiv;

begin

for i:=1 to L do

begin

writeln(‘x[‘,i,’]=’);

readln(x[i]);

end;

for i:=1 to L do

begin

b[i]:=x[L-i+1]

write(b[i]);

end;

начало

+

i:=1..L

Ввод x[i]

конец

b[i]:=x[L-i+1]

-

i:=1..L

b[i]

-

+

readln;

e nd.

  1. Вычислить сумму квадратов всех элементов заданного массива X(N), за исключением элементов, кратных пяти.

c

начало

onst L=20;

type massiv=[1..L] of integer;

var s,i:integer;

+

i:=1..n

Ввод a[i]

-

Ввод n

a:massiv;

begin

writeln(‘>n’);

readln(n);

for i=1 to n do

writeln(‘a[‘,I,’]=’);

readln(a[i]);

s:=0;

for i:=1 to n do

if a[i] mod 5<>0 then

s:=s+a[i]*a[i];

s:=0

writeln(‘сумма квадратов=’,s);

readln;

e

s:=s+a[i]*a[i]

i:=1..n

s

-

+

a[i] mod 5<>0

+

конец

nd.

  1. В заданном массиве a(n), все элементы которого попарно различны найти:

А) наибольший элемент из отрицательных;

Б) наименьший из положительных;

В) второй по величине элемент.

const L=20

type massiv=array[1..L] of integer;

var a:massiv;

k,n,i,max,max2,maxo,minp,j:integer;

begin

writeln(‘>n’); readln(n);

for i:=1 to n do

begin

writeln(‘a[‘,i,’]=’);

readln(a[i]);

end;

for i:=1 to n-1 do

if a[i]=a[i+1] then

begin

writeln(‘есть одинаковые элементы!’);

break;

end;

maxo:=a[1]; minp:=a[1]; max:=a[1]; max2:=0;

k:=0

for i:=1 to n do

begin

if a[i]>0 then

if a[i]<minp then minp:=a[i]

else

if a[i]>maxo then maxo:=a[i];

if a[i]>max then max:=a[i];

end;

i:=1; j:=1

while maxo2=0 do

begin

for i:=1 to n do

begin

if a[i]=max-j then

max2:=a[i];

k:=i;

end;

Jnc(j);

end;

if minp<=0 then writeln (‘наименьшего положительного элемента нет!)

else writeln(minp);

if maxo<=0 then writeln(‘наибольшего отрицательного элемента нет!’)

else writeln(maxo);

if max2=max then writeln(‘второго по величине элемента нет!’)

else writeln(max2);

readln; end.

начало

i:=1..n

Ввод a[i]

-

есть одинаковые элементы!

i:=1..n-1

a[i]=a[i+1]

i:=1..n

a[i]>0

a[i]<minp

a[i]>max

-

-

-

+

break

maxo:=a[1]; minp:=a[1]; max:=a[1]; max2:=0;

k:=0

a[i]>maxo

minp:=a[i]

maxo:=a[i]

max:=a[i]

+

-

-

+

+

+

-

-

+

Ввод n

конец

minp нет

max2=0

i:=1..n

a[i]=max-j

max2:=a[i]

k:=i

minp<=0

minp

maxo нет

maxo>=0

maxo

max2 нет

max2=max

max2

+

-

+

-

+

-

+

+

-

+

-

+

-

  1. Выяснить, есть ли в заданном предложении буква «ы».

var pr: string;

i,k:integer;

b

i:=1.. length(pr)

pr[i]=’ы’

egin

writeln(‘введите предложение’);

readln(pr);

k:=0

for i:=1 to length(pr) do

if pr[i]=’ы’ then k:=1;

if k=1 then writeln(‘есть’)

конец

начало

k:=1

Ввод pr

else wrieln(‘нет’);

readln;

e

есть

k=1

нет

+

-

+

-

-

nd.

1

начало

0. Выяснить, верно ли то, что в предложении имеется заданное слово S?

var pr,s:string;

a,dl,I,j,k,l:integer;

b

Ввод pr,S

egin

writeln(‘введите предложение:’);

readln(pr);

writeln(‘введите слово S:’);

dl:=length(S), l:=0, j:=0

readln(S);

+

+

+

+

dl:=length(S);

l:=0; j:=0;

i:=1.. a

pr[i]=S[1]

l<dl

-

-

-

-

-

-

-

a:=length(pr)-dl+1;

l:=0

for i:=1 to a do

b egin

if pr[i]=S[1] then

for k:=i to (i+dl) do

if pr[k]=s[j] then

begin

l:=l+1;

k:=i to (i+dl)

j:=j+1;

e nd;

if l<dl then l:=0;

end;

pr[k]=s[j]

if l>=dl then writeln(‘есть’)

else writeln(‘нету’);

+

readln;

e

нету

l:=l+1, j:=j+1

конец

есть

l>=dl

nd.

11. Вычеркнуть из заданного слова все буквы «а».

var sl:string;

i:integer;

begin

writeln(‘введите слово’);

readln(sl);

for i:=1 to length(sl) do

if sl[i]=’a’ then Delete(sl,i,1);

writeln(‘результат:’,sl);

readln;

e

конец

начало

Delete(sl,i,1)

i:=1..length(sl)

Ввод sl

sl

-

+

sl[i]=’a’

+

-

nd;

12. Выяснить, верно ли, что в заданном предложении есть два одинаковых соседствующих символа.

Var pr:string;

k,i,dl:integer;

begin

writeln(‘введите предложение’);

readln(pr);

dl:=length(pr);

k:=0;

for i:=1 to dl-1 do

if pr[i]=pr[i+1] then

k:=1;

начало

Ввод pr

if k=1 then writeln(‘верно’)

else writeln(‘не верно’);

readln;

e

Не верно

конец

верно

k=1

dl:=length(pr), k:=0

k:=1

i:=1..dl-1

pr[i]=pr[i+1]

-

+

+

-

-

+

nd.

Рекомендуемая литература:

1. Баврин, И.И. Высшая математика [Текст] /И.И. Баврин; учебник [гриф МО].-7-е изд.,- М.:Академия,2008.-616 с. - (Высш. проф. образование).

2. Безручко, В.Т. Компьютерный практикум по курсу "Информатика" [Текст]:учеб. пособие для студентов вузов/В.Т. Безручко.-3-е изд., перераб. и доп.-М.: Форум: ИНФРА-М,2009.-368 с.: ил.

3. Информатика. Общий курс [Текст]:учеб. пособие для вузов/А.Н. Гуда, М.А. Бутакова, Н.М. Нечитайло, А.В. Чернов; под ред.В.И. Колесникова; [гриф УМО].-3-е изд.-М.; Ростов н/Д: Дашков и К; Наука-Спектр,2009.-400 с.

4. Калабухова, Г.В. Компьютерный практикум по информатике. Офисные технологии [Текст]: учеб. пособие для вузов/Г.В. Калабухова, В.М. Титов; [гриф УМО].-М.: Форум: Инфра-М,2008.-336 с.: ил.

5. Канцедал, С.А. Алгоритмизация и программирование [Текст]: учеб. пособие для сред.проф. образования/С.А. Канцедал; [гриф УМО].-М.: Форум: Инфра-М, 2008.-352 с.: ил.

6. Могилев, А.В. Практикум по информатике [Текст]/А.В. Могилев, Н.И. Пак, Е.К. Хеннер; под ред. Е.К. Хеннера.-4-е изд., стереотип.- М.:Академия,2008.- 608 с.

7. Павловская, Т.А. Паскаль. Программирование на языке высокого уровня [Текст]: практикум: учеб. пособие для вузов/Т.А. Павловская; [гриф МО]. - М.; СПб.: Питер, 2007.-317 с.: ил.

8.Павловская, Т.А. Паскаль. Программирование на языке высокого уровня [Текст]: учеб. пособие для вузов/Т.А. Павловская; [гриф УМО]. - М.; СПб. [и др.]:Питер, 2009.-393 с.: ил.

9. Степанов, А.Н. Информатика [Текст]: учеб. пособие для студентов вузов/А.Н. Степанов; [гриф МО].-5-е изд.- М; СПб.[и др.]: Питер,2008.-765 с.: ил.

104

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]