на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Основные приемы работы в среде ТР
p align="left"> for i:=2 to n2 do begin b[i]:=b[i-1]+Random(Step);

write (b[i],' ');

end;

writeln;

ia:=1; ib:=1;

write ('C= ');

for i:=1 to n1+n2 do begin if a[ia]<=b[ib] then begin c[i]:=a[ia];

if ia<n1 then Inc(ia) else begin a[n1]:=b[ib];

if ib<n2 then Inc (ib); end; end

else begin c[i]:=b[ib];

if ib<n2 then Inc(ib) else begin b[n2]:=a[ia];

if ia<n1 then Inc(ia); end; end;

write (c[i],' ');

end;

writeln;

end.

3. Описание: Дан массив чисел. Найти наибольшее.

Program msv;

Uses crt;

Var i,n,max:integer; a:array[1..100] of integer;

begin clrscr;

read(n);

for i:=1 to n do read(a[i]); {ввод чисел в массив}

max:=a[1];

for i:=2 to n do if a[i] > max then max:=a[i]; {сравнивается с уже найденным наибольшим,}

write('maksimalnoe chislo = ',max);

readln;

end.

4. Описание: Найти сумму элементов числового массива

Program msv;

uses crt;

Var i,n,s:integer; a:array[1..1000] of integer;

begin clrscr;

read(n);

for i:=1 to n do read(a[i]); {ввод значений в массив}

s:=0;

for i:=1 to n do s:=s+a[i];

write('Summa = ',s); readln;

readln;

end.

5. Описание: Дан числовой массив. Вычислить сумму элементов,имеющих четное значение индекса. Вычислительную часть организовать в виде функции

Program msv;

Uses crt;

type mas=array[1..100] of integer;

Var a:mas; i,n:integer; function calc(b:mas;m:integer):integer;

var i,s:integer;

begin s:=0;

for i:=1 to m do;

if i mod 2=0 then s:=s+b[i];

calc:=s;

end;

begin clrscr;

read(n);

for i:=1 to n do read(a[i]);

write('Сумма каждого второго элемента = ',calc(a,n));

readln;

readln;

end.

6. Описание: Дан массив символов. Вычислить, сколько в нем элементов 'a'

Program msv;

Uses crt;

Var i,n,s:integer; a:array[1..100] of char;

begin clrscr;

readln(n); {Объявление а:array[1..1000] of char означает,}

for i:=1 to n do readln(a[i]);

s:=0;

for i:=1 to n do readln(a[i]);

s:=0;

for i:=1 to n do if a[i]='a' then s:=s+1;

write('Kolichestvo elementov ravnyh "a" = ',s);

readln;

end.

7. Описание: Дан двумерный массив целых чисел размерностью NxN. Найти сумму его элементов

Program msv;

Uses crt;

Var s,i,j,n:integer; a:array[1..10,1..10] of integer;

begin clrscr;

read(n);

for i:=1 to n do for j:=1 to n do read(a[i,j]);

for i:=1 to n do for j:=1 to n do s:=s+a[i,j];

write('Сумма элементов = ',s);

readln;

readln;

end.

8. Описание: По заданному массиву X[7] сформировать массив Y, элементы которого вычисляются по формуле

Y[i]= |X[i]-B|, где B - максимальный элемент массива X

program msv;

const Size=7; { Размерность массива }

var x:array [1..Size] of real; b:real; i:integer;

begin writeln;

writeln ('Жду ввода элементов массива размерностью ',Size,':');

for i:=1 to Size do begin write ('x[',i,']=');

readln (x[i]); end;

b:=x[1];

for i:=2 to Size do if x[i]>b then b:=x[i];

writeln ('Максимальный элемент=',b:10:3);

writeln ('Исходный Новый');

writeln ('массив массив');

for i:=1 to Size do begin write (x[i]:10:4);

x[i]:=abs(x[i]-b);

writeln (x[i]:10:4); end;

end.

9. Описание: Найти максимальный элемент в линейном массиве.

Вывести результат на экран

program msv;

uses crt;

const

nn = 10; var max, i: integer; a: array[1..nn] of integer; begin clrscr;

for i := 1 to nn do a[i] := random(500);

max := a[1];

for i := 2 to nn do if a[i] > max then max := a[i];

for i := 1 to nn do write(a[i], ' '); writeln;

writeln('Max = ', max);

readkey;

end.

10. Описание: Отсев. Удалить в заданном массиве x(n) лишние (кроме первого) элементы так, чтобы оставшиеся образовывали возрастающую последовательность(за один просмотр массива)

program msv;

uses crt;

const n = 10; {dlina massiva}

var a: array[1..n] of integer; i, max, j, k, mi: integer; begin clrscr; randomize;

for i := 1 to n do begin a[i] := random(51);

write(a[i], ' '); end;

max := a[1];

k := 2; {t.k. uslovie zadachi "preobarzovat' za odin prosmotr massiva", to}

{k ne mozhet bit' bol'she N, chem mi vospol'zuemsya v cikle}

for i := 2 to n do begin if k > n then break;

if a[i] <= max then {esli a[i] <= max to udalyaem etot element}

begin for j := i to n - 1 do {etogo cikl mog bi ne viiti, no u nas est' K}

a[j] := a[j + 1];

dec(i); end;

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

mi := i; {MI - poziciya maksimuma v massive} end;

inc(k); {uvelichivaem K, k = [2..n]} End;

Write (#10#13, a[1], ' ');

For i: = 2 to mi do Write (a[i], ' ');

readkey;

end.

11. Описание: В массиве X из n элементов каждый из элементов равен 0, 1 или 2. Переставить элементы массива так, чтобы сначала располагались нули, затем единицы и двойки. Дополнительный массив не использовать.

Программа расширена для возможности переставлять элементы массива, являющимися любыми числами (не только 0, 1, 2)

Program msv;

Const n = 10; {кол-вл элементов массива}

var a, b, t : integer; X: array[1..n] of integer; {сам массив из n элементов}

BEGIN For a := 1 to n do {ввод массива X} Begin Write ('Введите X [', a, ']: ');

Readln(X[a]); End;

for a := 1 to n do begin t := X[a];

b := a - 1;

While (b>=0) and (t<X[b]) do Begin X [b+1]:= X[b];

B: = b - 1; End;

X [b+1]:= t; end;

for a := 1 to n do {вывод результата}

Write(X[a]:2);

END. {конец программы}

12. Описание: Операции с массивом, сортировка суммирование.В одномерном массиве, состоящем из N вещественных элементов, вычислить:1) количество элементов массива, равных 0;2) сумму элементов массива, расположенных после минимального элемента.

Упорядочить элементы массива по возрастанию модулей элементов.

Program msv;

Uses CRT;

Const N = 10; {сколько всего элементов}

Var a: Array[1..N] of Real; i, j: Byte; Zero: Byte; Min: Real; Summ: Real;

Procedure Print;

Begin For i := 1 to N do Write(a[i]:0:1,' ');

Writeln;End;

Procedure CreateMassive;

BeginWriteln('Исходная последовательность');

For i := 1 to N do Begin a[i] := Random(4);

a[i] := a[i] - 2; {Этот и предыдущий операторы можно объединить}

End;

Print;

Writeln;End;

Begin ClrScr;Randomize;

CreateMassive;

Min := a[1];

For i := 2 to N do Begin Summ := Summ + a[i];

If (a[i] < Min) then Begin Min := a[i];

Summ := 0; End; End;

Writeln('Минимальный элемент ',Min:0:1,'. Сумма элементов после: ',Summ:0:1);

For i := 1 to N do Begin For j := i + 1 to N do If (abs(a[j]) < abs(a[i])) then Begin a[i] := a[i] + a[j];

a[j] := a[i] - a[j];

a[i] := a[i] - a[j]; End; End;

Writeln(#13#10,'Отсортировання последовательность'); Print;

For i := 1 to N do If a[i] = 0 then Inc(Zero);

Write(#13#10,'Нулевых элементов: ',Zero);ReadKey;

End.

13. Описание: Вычислить угол между двумя заданными векторами размерности 8, используя функцию скалярного произведения a = arccos((x,y)/((x,x)*(y,y)))

program msv;

uses crt;

type TVector = array[1..8] of Real;

function scal(var Vec1, Vec2 : TVector):real; var p : Real; i : integer;

begin p:=0;

for i:=1 to 8 do p:=p+(Vec1[i]*Vec2[i]);

scal := p;end;

var Vec1, Vec2 : TVector; i : integer; sc, a, angle : Real;

BEGIN writeln('Условие:');

writeln(' вычислить угол между двумя заданными векторами размерности 8,');

writeln(' используя функцию скалярного произведения');

writeln;

Writeln('Ввод первого вектора');

for i := 1 to 8 do begin Write('Vec1[', i, '] : ');

Readln(Vec1[i]); end;

Writeln('Ввод второго вектора');

for i := 1 to 8 do begin Write('Vec2[', i, '] : ');

Readln(Vec2[i]); end;

sc := scal(Vec1, Vec2);

a:= sc/sqrt(scal(Vec1,Vec1)*scal(Vec2,Vec2)); {Вычисляется косинус}

if a=0 then angle:=90 else angle:=arctan(sqrt(1-a*a)/a)*180/pi;

if a=-1 then angle:=180;

if angle<0 then angle:=180+angle;

writeln('Угол между векторами: ',angle:7:3,' градусов');

END.

14. Описание: Вычислить сумму двух векторов, первый из которых вводится, а элементы второго вычисляются по формуле b[i]:=sin(i*x), где 0<=x<=3.14

program msv;

const Nm = 10; {размерность вектора}

var Vec1, Vec2, ResVec : array[1..Nm] of Real; i : integer; x : Real; N : integer;

BEGIN writeln('Условие :');

writeln(' вычислить сумму двух векторов, первый из которых вводится, а элементы');

writeln(' второго вычисляются по формуле b[i]:=sin(i*x), где 0<=x<=3.14');

writeln;

Write('введите размерность вектора (N<', Nm, '): ');

Readln(N);

if n <= Nm then begin Writeln('Ввод вектора');

for i := 1 to N do begin Write('Vec1[', i, '] : ');

Readln(Vec1[i]); end;

Write('Введите X (от 0 до 3.14) : '); Readln(x);

if (X <= 3.14) and (X >= 0) then begin for i := 1 to N do begin Vec2[i] := sin(Vec1[i]*X); ResVec[i] := Vec1[i]*Vec2[i]; {сразу же вычисляем произведние} end;

Write('Результирующий вектор : '); {выводим на экран результат}

for i := 1 to N do Write(ResVec[i]:6:2); end else Writeln('Введено неверное X');

end else Writeln('неверная размерность');

END.

15. Описание: Создается случайный массив из 5 элементов. Заменить все четные значения на 1, нечетные - на 0.

Program msv;

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.