10 завдань з рішеннями програмуванням на Паскалі

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Завдання 1.

Умова: Знайти середнє арифметичне загальної сукупності елементів тих рядків заданої матриці, останній елемент яких дорівнює 1.


Програма:

program S2_Z1;

type m = array [1 .. 100,1 .. 100] of integer;

var A: m;


procedure vvod (m, n: integer; var x: m);

var i, j: integer;

begin writeln ('введіть елементи масиву');

for i: = 1 to m do

for j: = 1 to n do

read (x [i, j]);

end;


procedure arf (m, n: integer; var x: m);

var i, j, s: integer; sr: real;

begin

for i: = 1 to m do begin s: = 0; sr: = 0;

if x [i, n] = 1 then begin

for j: = 1 to n do

s: = s + x [i, j]; sr: = s / n;

writeln ('середнє арифметичне', i, 'рядка дорівнює', sr: 5:2); end; end;

end;


begin

vvod (3,3, A);

arf (3,3, A);

end.


Завдання 2.

Умова: Отримати масив Х (n) за правилом: Х i = 1, якщо в i-му стовпці заданої матриці є хоча б один елемент перевищує задане значення С, інакше X i = 0. Знайти загальне число елементів, великих С.


Програма:

program S2_Z2;

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

var A: m;


procedure vvod (m, n: integer; var x: m);

var i, j: integer;

begin writeln ('введіть елементи масиву');

for i: = 1 to m do

for j: = 1 to n do

read (x [i, j]);

end;


procedure moped (m, n: integer; var y: m);

var i, j, c, k: integer; X: mas;

begin k: = 0; writeln ('введіть величину С ='); readln (c);

for j: = 1 to n do x [j]: = 0;

for j: = 1 to n do

for i: = 1 to m do

if y [i, j]> c then begin X [j]: = 1; k: = k +1; end;

writeln ('елементи масиву Х:');

for j: = 1 to n do write (X [j], '');

writeln;

writeln ('кількість елементів матриці перевищують число', c, 'одно', k)

end;


begin

vvod (2,5, A); moped (2,5, A); readln;

end.


Завдання 3.

Умова: Дано масив A (5,5). Змінити частина матриці, що знаходиться під головною діагоналлю наступним чином: якщо елемент A [i, j] цієї частини матриці більше елемента A [j, i], то задати елементу A [i, j] нове значення, рівне підлозі сумі двох цих елементів.


Програма:

program S2_Z3;

type m = array [1 .. 100,1 .. 100] of real;

var A: m;


procedure vvod (m, n: integer; var x: m);

var i, j: integer;

begin

writeln ('введіть елементи масиву');

for i: = 1 to m do

for j: = 1 to n do

read (x [i, j]);

end;


procedure mat (m, n: integer; var x: m);

var i, j: integer; t: real;

begin

writeln ('змінений матриця A [i, j] буде виглядати так');

for i: = 1 to m do

for j: = 1 to n do

if i> j then if x [i, j]> x [j, i] then x [i, j]: = (x [i, j] + x [j, i]) / 2;

for i: = 1 to m do

for j: = 1 to n do

write (A [i, j]: 2:1, '');

end;


begin

vvod (5,5, A);

mat (5,5, A);

end.


Завдання 4.

Умова: Визначити саму довгу послідовність поспіль нулів в заданому одновимірному масиві.


Програма:

program S2_Z4;

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

var A: m;


procedure vvod (m: integer; var x: m);

var i: integer;

begin writeln ('введіть елементи масиву');

for i: = 1 to m do

read (x [i]);

end;


procedure moped (m: integer; var x: m);

var i, k, n: integer;

begin k: = 0; n: = 0;

for i: = 1 to m do

if x [i] = 0 then k: = k +1

else begin

if x [i-1] = 0 then

if k> n then n: = k;

k: = 0; end;

if k> n then

writeln ('найбільша послідовність нулів состовляет', k)

else

writeln ('найбільша послідовність нулів состовляет', n);

end;


begin

vvod (20, A); moped (20, A);

end.


Завдання 5.

Написати програму, що прочитує задану кількість одновимірних масивів, визначальну мінімальний елемент у кожному з них і підраховують кількість нулів серед елементів, розташованих за мінімальним.


Програма:

program S2_Z5;

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

var A: mas;


procedure vvod (kn: integer; x: mas);

var y: m; i, t, k, min, k0: integer;

begin

for k: = 1 to kn do begin

k0: = 0; min: = 1000;

writeln ('введіть кол-во ел-ів в', k, '-му масиві'); read (t);

writeln ('тепер введіть елементи цього масиву');

for i: = 1 to t do

read (y [i]);

for i: = 1 to t do

if y [i]

writeln ('мінімальний елемент цього масиву дорівнює', min);

for i: = 1 to t do

if y [i] = min then for i: = i to t do

if y [i] = 0 then k0: = k0 +1;

writeln ('кількість нулів масиву після мінімального значення одно', k0);

write;

write;

end;

end;


begin

vvod (5, A);

end.


Завдання 6.

Умова: Написати програму підраховують в кожній із заданих рядків кількість слів `мама`.

Програма:

program S2_Z6;

type str = string [100]; ms = array [1 .. 100] of str;

var A: ms;


procedure vvod (m: integer; var x: ms);

var i: integer;

begin

for i: = 1 to m do begin writeln ('введіть', i, '-й рядок');

readln (A [i]); end; end;


procedure moped (m: integer; var x: ms);

var i, k: integer; st: str;

begin

for i: = 1 to m do begin k: = 0;

st: = A [i];

while pos ('мама', st) <> 0 do begin k: = k +1; delete (st, pos ('мама', st), 4); end;

writeln ('к-ть слів мама в', i, '-ої рядку', k); end; end;


begin

vvod (5, A);

moped (5, A);

end.


Завдання 7.

Умова: Дано масив з 7 рядків, в кожному з яких не більше 50 елементів. Видалити з кожного рядка всі прогалини і записати кількість віддалених прогалин в кінець цього рядка.


Програма:

program S2_Z7;

type s = string [50]; ms = array [1 .. 100] of s;

var A: ms;


procedure vvod (m: integer; var x: ms);

var i: integer;

begin

for i: = 1 to m do begin writeln ('введіть', i, '-й рядок');

readln (A [i]); end; end;


procedure prob (m: integer; var x: ms);

var i, k: integer; st, p: s;

begin

for i: = 1 to m do begin

st: = x [i]; k: = 0;

while pos ('', st) <> 0 do begin delete (st, pos ('', st), 1); k: = k +1; end;

str (k, p);

insert (p, st, length (st) +1); writeln (i, '-ий рядок:', st); end;

end;


begin

vvod (7, A); prob (7, A);

end.


Завдання 8.

Умова: У текстовому файлі відсортувати рядки за зростанням їх довжин.


Прграмма:

program S2_Z8;

type ft = text; mas = array [1 .. 100] of string;

var f1: ft; k, i, j: integer; s: string; A: mas;


procedure sozd (var f: ft; n: integer);

var i: integer; s: string;

begin assign (f, 'c: \ 1.txt'); rewrite (f);

for i: = 1 to n do

begin writeln ('введіть', i, '-й рядок'); readln (s);

writeln (f, s);

end; close (f);

end;


procedure w (var f: ft);

var s: string;

begin writeln ('змінений фаил буде виглядати так:');

reset (f);

while not eof (f) do begin readln (f, s); writeln (s)

end; close (f);

end;


begin writeln ('введіть кількість рядків у файлі'); readln (k);

sozd (f1, k);

reset (f1);

while not eof (f1) do

begin for i: = 1 to k do begin readln (f1, s); A [i]: = s; end; end;

for j: = 1 to k do

for i: = 1 to k do

if length (a [i])

s: = a [i]; a [i]: = a [i-1]; a [i-1]: = s; end;

close (f1);

rewrite (f1);

for i: = 1 to k do writeln (f1, a [i]);

close (f1);

w (f1);

end.


Завдання 9.

Умова: У файлі з дійсних чисел переставити елементи таким чином, щоб спочатку були записані всі позитивні, потім всі негативні, а потім усі нулі.


Програма:

program S2_Z9;

type fi = file of integer; m = array [1 .. 100] of integer;

var f1: fi; n: integer;


procedure vvod (n: integer; var f: fi);

var i, a: integer;

begin

assign (f, 'c: \ f.int');

rewrite (f);

writeln ('Введіть компоненти файлу');

for i: = 1 to n do begin

read (a); write (f, a); end;

close (f);

end;


procedure sort (n: integer; var f: fi);

var buf: fi; s, i, j, k: integer; a: m;

begin

reset (f);

assign (buf, 'c: \ buf.int');

rewrite (buf);

while not eof (f) do begin

for i: = 1 to n do begin read (f, s); A [i]: = s; end; end;

for j: = 1 to n do

for i: = 1 to n do

if a [i]> a [i-1] then begin

s: = a [i]; a [i]: = a [i-1]; a [i-1]: = s; end;

k: = 0;

for i: = 1 to n do

if a [i] = 0 then begin s: = a [i]; a [i]: = a [nk]; a [nk]: = s; k: = k +1; end;

for i: = 1 to n do write (buf, a [i]);

close (buf); close (f);

erase (f);

rename (buf, 'c: \ f.int');

end;


procedure w (var f: fi);

var a: integer;

begin

reset (f);

while not eof (f) do begin

read (f, a); write (a: 4); end;

end;


begin

writeln ('Задайте кількість компонентів файлу'); readln (n);

vvod (n, f1);

sort (n, f1);

w (f1);

write;

end.


Блок схема:


Завдання 10.

Умова: Записати в кінець кожного рядка текстового файлу кількість слів у цій рядка.


Програма:

program S2_Z10;

type ft = text; mas = array [1 .. 100] of string;

var f1: ft; k: integer;


procedure sozd (var f: ft; n: integer);

var i: integer; s: string;

begin assign (f, 'c: \ f.txt'); rewrite (f);

for i: = 1 to n do

begin writeln ('введіть', i, '-й рядок'); readln (s);

writeln (f, s);

end; close (f);

end;


procedure kslov (var f: ft);

var s, pk, p: string; k: integer; buf: ft;

begin

reset (f);

assign (buf, 'c: \ buf.txt');

rewrite (buf);

while not eof (f) do begin k: = 0; readln (f, s);

p: = s;

while pos ('', p)> 1 do begin k: = k +1; delete (p, 1, pos ('', p)); end;

str (k, pk); insert (pk, s, length (s) +1); writeln (buf, s); end;

close (f); close (buf);

erase (f);

rename (buf, 'c: \ f.txt');

end;


procedure w (var f: ft);

var s: string;

begin writeln ('змінений фаил буде виглядати так:');

reset (f);

while not eof (f) do begin readln (f, s); writeln (s)

end; close (f);

end;


begin

writeln ('введіть кількість рядків у файлі'); readln (k);

sozd (f1, k); kslov (f1); w (f1);

end.

Блок схема:

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Реферат
14.3кб. | скачати


Схожі роботи:
Завдання по моделюванню з рішеннями
Програмування на Паскалі
Цикли в Паскалі
Галуження в Паскалі
Арканоід на Паскалі
Типи даних в Паскалі
Робота з редакторами Word і Excel Програмування в Паскалі
Алгоритмізація завдань
Визначення завдань уроку
© Усі права захищені
написати до нас