Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет по практике2.doc
Скачиваний:
1
Добавлен:
26.09.2019
Размер:
6.9 Mб
Скачать

Приложение 4. Основы алгоритмизации и программирования.

1) Определить пару соседних элементов с суммой, равной заданному числу.

const km=10;

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

var a:massiv;

t,j,i,buf:integer;

procedure perestanovka(var a:massiv);

begin

for i:=1 to t do begin

for j:=1 to km do

if j=1 then buf:=a[j] else a[j-1]:=a[j];

a[j]:=buf;

end;

end;

begin

randomize;

for i:=1 to km do begin

a[i]:=random(10);

write(a[i]:2);

end;

writeln;

write('Vvedite t ( 1<t<n ):');

readln(t);

perestanovka(a);

for i:=1 to km do

write(a[i]:2);

readln;

end.

2) В массиве А размерностью n x m к элементам четных столбцов прибавить элемент 1-го столбца соответствующей строки.

CONST KM=10;

var a:array[1..km,1..km] of integer;

i,j,max,indexi,indexj:integer;

procedure massrandom;

begin

for i:=1 to km do

for j:=1 to km do

a[i,j]:=random(10);

end;

begin

randomize;

massrandom;

for i:=1 to km do begin

for j:=1 to km do

write(a[i,j]:3);

writeln;

end;

writeln;

for i:=1 to km do begin

for j:=1 to km do

if j mod 2=0 then a[i,j]:=a[i,j]+a[i,1];

end;

for i:=1 to km do begin

for j:=1 to km do

write(a[i,j]:3);

writeln;

end;

readln;

end.

3) Дан двумерный массив. Выполнить следующее преобразование: положительные элементы умножить на первый элемент соответствующей строки, а отрицательные – на последний.

uses crt;

const km=10;

var a:array[1..km,1..km] of integer;

i,j:integer;

begin

clrscr;

randomize;

for i:=1 to km do

begin

for j:=1 to km do

begin

a[i,j]:=random(10)-5;

write(a[i,j]:3);

end;

writeln;

end;

writeln;

for i:=1 to km do

for j:=2 to km-1 do begin

if a[i,j]>0 then a[i,j]:=a[i,j]*a[i,1]

else a[i,j]:=a[i,j]*a[i,km];

end;

for i:=1 to km do

begin

for j:=1 to km do write(a[i,j]:3);

writeln;

end;

readln;

end.

4) Подсчитать, сколько раз определенный символ (например «а») встречается в строке.

var str:string;

sim:char;

i,k:integer;

begin

writeln('Введите строку');

readln(str);

writeln('Введите символ');

readln(sim);

for i:=1 to length(str) do

if str[i]=sim then k:=k+1;

writeln('Символ ',sim,' Встречается ',k,' раз.');

readln;

end.

5) Дано натуральное число n. Вывести в порядке возрастания цифры, не входящие в десятичную запись числа n.

var mn:set of byte;

c,x:integer;

n:longint;

begin

writeln('Введите число(longint ):'); readln(n);

repeat

x:=n mod 10;

mn:=mn+[x];

n:=n div 10;

until n<1;

mn:=[0..9]-mn;

writeln('Цифры не входящие в десятичную запись числа(по возрастанию)');

for c:=0 to 9 do

if c in mn then write(c,' ');

readln;

end.

6) Распечатать фамилии рабочих бригады, начинающихся с буквы А и С, с указанием их месячной зарплаты.

type

brig=record

fam:string;

zp:longint;

end;

const km=3;

var a:array[1..km] of brig;

i:integer;

begin

writeln('Ввведите фамилии и зарплаты для ',km,' рабочих.');

for i:=1 to km do

begin

writeln('Фамилия'); readln(a[i].fam);

writeln('Зарплата'); readln(a[i].zp);

end;

writeln('Фамилии и зарплаты рабочих с фамилией на ''А'' и на ''С''');

for i:=1 to km do

if (a[i].fam[1]='А') or (a[i].fam[1]='С') then writeln(a[i].fam,' ',a[i].zp);

readln;

end.

7) Дан файл, содержащий произвольный текст. Выяснить чего в нем больше: русских букв или цифр.

uses crt;

type txttype=text;

var i,kolrus,kolcifr:integer;

f:txttype;

str:string;

rus:set of char;

begin

clrscr;

assign(f,'z35.txt');

reset(f);

writeln('Текст из файла z35.txt:');

repeat

readln(f,str);

writeln(str);

until eof(f);

reset(f);

repeat

repeat

read(f,str);

for i:=1 to length(str) do begin

if str[i] in ['а'..'я','А'..'Я'] then kolrus:=kolrus+1;

if str[i] in ['0'..'9'] then kolcifr:=kolcifr+1;

end;

until eoln(f);

readln(f);

until eof(f);

writeln('Кол-во русских букв ',kolrus,', кол-во цифр ',kolcifr);

if kolrus=kolcifr then writeln('Кол-во рус.букв и цифр равно.') else

if kolrus>kolcifr then writeln('Русских букв больше') else

writeln('Цифр больше.');

readln;

end.

8) Изобразить на экране ЭВМ следующий рисунок, организовать движение по горизонтали, вертикали, диагонали.

uses crt,graph;

var p:pointer;

gd,gm,x,y,size,w,e,i:integer;

begin

gd:=detect;

initgraph(gd,gm,'');

line(100,100,190,100);

line(100,130,190,130);

line(100,160,190,160);

line(100,190,190,190);

line(100,100,100,190);

line(130,100,130,190);

line(160,100,160,190);

line(190,100,190,190);

line(115,85,205,85);

line(205,85,205,175);

line(100,100,115,85);

line(130,100,145,85);

line(160,100,175,85);

line(190,100,205,85);

line(190,130,205,115);

line(190,160,205,145);

line(190,190,205,175);

setfillstyle(1,1);

floodfill (101,101,white);

floodfill (191,161,white);

setfillstyle(1,2);

floodfill (131,101,white);

floodfill (191,101,white);

setfillstyle(1,3);

floodfill (131,101,white);

floodfill (161,161,white);

setfillstyle(1,4);

floodfill (161,101,white);

floodfill (110,98,white);

setfillstyle(1,2);

floodfill (161,131,white);

floodfill (131,131,white);

setfillstyle(1,6);

floodfill (131,161,white);

floodfill (191,131,white);

floodfill (161,98,white);

setfillstyle(1,7);

floodfill (135,98,white);

floodfill (161,131,white);

floodfill (101,161,white);

setfillstyle(1,8);

floodfill (101,131,white);

floodfill (165,98,white);

size:=imagesize(80,80,205,205);

getmem(p,size);

getimage(80,80,205,205,p^);

putimage(80,80,p^,xorput);

repeat;

if x>638 then w:=1;

if x<0 then w:=0;

if y>400 then e:=1;

if y<0 then e:=0;

if w=1 then x:=x-5;

if w=0 then x:=x+5;

if e=1 then y:=y-5;

if e=0 then y:=y+1;

putimage(x,y,p^,xorput);

putimage(x,y,p^,xorput);

until keypressed;

putimage(x,y,p^,xorput);

freemem(p,size);

readln;

closegraph;

end.

9) Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над векторами:

сложения;

вычитания;

скалярного умножения векторов; умножения вектора на число;

нахождение длины вектора.

unit z43;

{$R+}

interface

type vector=record

x,y:real

end;

{var summav,raznv:vector;

rez:real;}

procedure summa(v1,v2:vector; var summav:vector);

procedure razn(v1,v2:vector; var raznv:vector);

procedure proiz(v1,v2:vector; var rez:real);

procedure umn(v1:vector; c:integer; var rez:vector);

procedure dlina(v1:vector; var rez:real);

implementation

procedure summa;

begin

summav.x:=v1.x+v2.x;

summav.y:=v1.y+v2.y;

writeln('mod',v1.x,v1.y);

end;

procedure razn;

begin

raznv.x:=v1.x-v2.x;

raznv.y:=v1.y-v2.y;

end;

procedure proiz;

begin

rez:=v1.x*v2.x+v1.y*v2.y;

end;

procedure umn;

begin

rez.x:=v1.x*c; rez.y:=v1.y*c;

end;

procedure dlina;

begin

rez:=sqrt(v1.x*v1.x+v1.y*v1.y);

end;

begin

end.

Вывод.

В ходе прохождения практики в Башкирском экономико-юридическом техникуме мы получили первичные навыки, которые пригодятся нам в нашей будущей профессии.

Мы закрепляли полученный в ходе занятий материал, пройденный за этот год: решали задачи в Excel и проверяли их в MathCAD, программировали в Turbo Pascal, занимались созданием и редактированием текстовых документов в MS Word, устанавливали и настраивали ОС, а также собирали и разбирали системные блоки ПК.

68