Програмування вирішення завдань

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

скачати

Завдання № 1

Написати програму для обчислення значення виразу:

2

1 +

3 + 4

6

5 +

7 + x

при різних значеннях х.

Передбачити програмну обробку значень х, при яких вираз не існує.

Рішення

  1. Аналіз введених з клавіатури вихідних даних

  2. Умова, при якому х> 0

  3. Повторення попередньої операції для кожної функції

  4. Виведення умови для виходу

  5. Висновок результатів

program Project1;

{$ APPTYPE CONSOLE}

uses

SysUtils;

var

x, y, n: real;

begin

repeat

writeln ('enter x');

readln (x);

if (x +7) = 0 then writeln ('resheniy net') else

if (5 +6 / (7 + x)) = 0 then writeln ('resheniy net') else

if (3 +4 / (5 +6 / (7 + x))) = 0 then writeln ('resheniy net')

else

y: = 1 +2 / (3 +4 / (5 +6 / (7 + x)));

writeln ('y =', y: 1:10);

writeln ('dly vuhoda nagmite 0, esli net to 1');

readln (n);

if n = 0 then break

until false

end.

Рис. 1. Результати роботи програми для завдання 1

Завдання № 2

Шахова дошка містить 8х8 клітин. Горизонталі і вертикалі позначаються цифрами 1-8. Написати програму, що перевіряє, чи можна з першої заданої клітини потрапити на другу одним ходом чорного слона.

Рішення

  1. Аналіз введених з клавіатури вихідних даних для першої клітини

  2. Умова для а1> 8 або в1> 8.

  3. Аналіз введених з клавіатури вихідних даних для другої клітини

  4. Умова для abs (а2-а1).

  5. Виведення умови для виходу

  6. Висновок результатів

Для вирішення задачі введемо координати першої клітини, при тому, що вони повинні бути менше восьми; потім координати другий клітини (вони також повинні бути менше восьми). Якщо різниця координат перший клітини дорівнює різниці координат другий клітини, то значить з першої клітини можна потрапити на другу одним ходом чорного слона, якщо координати не рівні, то не можна. Запишемо результат.

program Project2;

{$ APPTYPE CONSOLE}

uses

SysUtils;

var

a1, a2, b1, b2: integer;

c: real;

begin

repeat

writeln ('Enter koordinati 1-oy kletki ot 1 do 8');

readln (a1, b1);

if (a1> 8) or (b1> 8) then writeln ('Nelsya enter eto chislo, enter other');

writeln ('Enter koordinati 2-oy kletki ot 1 do 8');

readln (a2, b2);

if abs (a2-a1) = abs (b2-b1) then writeln ('mogno') else writeln ('nelsya');

readln;

writeln ('dly vuhoda nagmite 0, esli prodolgit to 1');

readln (c);

if c = 0 then break;

until false

end.

Рис.2. Результати рабат програми для завдання 2

Завдання № 3

Тетяна Ларіна, читаючи черговий французький роман, підрахувала суму номерів прочитаних сторінок. Написати програму, що визначає номер останньої прочитаної сторінки.

Рішення

  1. Аналіз введених з клавіатури вихідних даних

  2. Рішення за допомогою арифметичної прогресії

  3. Виведення умови для виходу

  4. Висновок результатів

program Project2;

{$ APPTYPE CONSOLE}

uses

SysUtils;

var

sum, i, n: integer;

begin

write ('enter n:');

readln (n);

i: = 0;

repeat

inc (i);

sum: = sum + i;

until sum> = n;

writeln ('otvet', i);

readln (i);

end.

Рис. 3. Результати роботи програми для завдання 3

Завдання № 4

Знайти всі двозначні числа, сума цифр яких не змінюється при множенні на 2,3,4,5,6,7,8,9.

Рішення

Для написання цієї програми скористаємося функцією sumc (множення I на будь-яке однозначне число). Для перевірки кратності зручно використовувати операцію mod, що дозволяє визначити залишок при розподілі цілих чисел. Оскільки числа двозначні, то цикл буде від 10 до 99.

program Project 4;

/ / Uses SysUtils;

var

sum, i: integer;

function sumc (val: integer): integer;

var

x: integer;

begin

x: = 0;

repeat

x: = x + val mod 10;

val: = val div 10;

until val = 0;

sumc: = x;

end;

begin

for i: = 10 to 99 do

begin

sum: = sumc (i);

if sumc (i * 2) = sum then writeln ('2: ', i);

if sumc (i * 3) = sum then writeln ('3: ', i);

if sumc (i * 4) = sum then writeln ('4: ', i);

if sumc (i * 5) = sum then writeln ('5: ', i);

if sumc (i * 6) = sum then writeln ('6: ', i);

if sumc (i * 7) = sum then writeln ('7: ', i);

if sumc (i * 8) = sum then writeln ('8: ', i);

if sumc (i * 9) = sum then writeln ('9: ', i);

ReadLn;

end.

Рис. 4. Результати роботи програми для задачі 4

Завдання № 5

Одновимірний масив, що містить N елементів, складається з нулів, одиниць і двійок, розташованих у довільному порядку (заповнення масиву-випадковим чином). Перетворити масив так, щоб спочатку розташувалися всі двійки, потім усі нулі і, нарешті, всі одиниці.

Рішення

program Project5;

/ / Uses SysUtils;

const

n = 20;

var

arr: array [1 .. n] of byte;

tmp, i, j, k: byte;

begin

randomize;

for i: = 1 to n do arr [i]: = random (3);

for i: = 1 to n do

for j: = i to n do

if arr [i] <arr [j] then

begin

tmp: = arr [i];

arr [i]: = arr [j];

arr [j]: = tmp;

end;

for i: = 1 to n do if arr [i] = 1 then

begin

k: = i;

break;

end;

for i: = k to n do

for j: = i to n do

if arr [i]> arr [j] then

begin

tmp: = arr [i];

arr [i]: = arr [j];

arr [j]: = tmp;

end;

for i: = 1 to n do write (arr [i], '');

ReadLn;

end.

Рис. 5. Результати роботи програми для завдання 5

Завдання № 6

Задано матриця відстаней між містами. Написати програму, в якій зазначено усі міста, відстані від яких до інших міст не більше А.

Рішення

program Project6;

/ / Uses SysUtils;

const

a = 20;

var

arr: array [1 .. 5, 1 .. 5] of byte;

i, j: byte;

begin

randomize;

for i: = 1 to 5 do

for j: = 1 to 5 do arr [i, j]: = 0;

for i: = 2 to 5 do

for j: = 1 to i-1 do arr [i, j]: = random (50) +1;

for i: = 1 to 5 do

for j: = 1 to 5 do if (arr [i, j] <= a) and (arr [i, j] <> 0) then writeln (i, '', j, '', arr [i, j ]);

ReadLn;

end.

Рис. 6. Результати роботи програми для завдання 6

Завдання № 7

Видалити ведучі та кінцеві пробіли в рядку.

Рішення

  1. Аналіз введених з клавіатури вихідних даних

  2. Застосування функції trim

  3. Виведення умови для виходу

4. Висновок результатів

Для вирішення цього завдання використовуємо рядковий тип даних. Для видалення пробілів скористаємося функцією trim (видаляє всі ведучі і кінцеві пробіли). Запишемо результат.

program Project7;

{$ APPTYPE CONSOLE}

uses

SysUtils;

var

s: string; Index, Count: integer;

n: real;

begin

repeat

s: = ('enter stroku s klaviaturi');

readln (s);

s: = trim (s);

writeln (s);

write ('dly vuhoda nagmite 0, esli prodolgit to 1');

readln (n);

if n = 0 then break

until false

end.

Рис.7. Результати роботи програми для задачі 7

Завдання № 8

Написати програму для видалення всіх рядків двовимірного масиву з негативними елементами.

Рішення

Для вирішення задачі використовуємо функцію haveotr, а також процедуру delete (видаляє з рядка символи, починаючи з позиції Index). Відзначимо, що haveotr = брехня, але якщо масив від 1 до 5 <0, то в цьому випадку haveotr = правда.

program Project8;

/ / Uses SysUtils;

var

arr: array [1 .. 5, 1 .. 5] of integer;

i, j: byte;

function haveotr (n: byte): boolean;

begin

haveotr: = false;

for j: = 1 to 5 do if arr [n, j] <0 then haveotr: = true;

end;

procedure del (n: byte);

begin

for j: = 1 to 5 do arr [n, j];

end;

begin

repeat

randomize;

for i: = 1 to 5 do

for j: = 1 to 5 do arr [i, j]: = random (5) -1;

for i: = 1 to 5 do

if haveotr (i) then del (i);

until false

end.

Завдання № 9

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

Рішення

Для вирішення завдання вводимо два непустих безлічі (випадковим чином удвох літери). N - число постійне і дорівнює 20. Обчислюємо за допомогою to length. Записуємо результат.

program Project 9;

/ / Uses SysUtils;

const

n = 20;

var

tmp: char;

pr, st: string;

i, j: byte;

a: real;

begin

repeat

writeln ('enter st');

readln (st);

for i: = 1 to length (st) do

for j: = i to length (st) do

if st [i]> st [j] then

begin

tmp: = st [i];

st [i]: = st [j];

st [j]: = tmp;

end;

writeln ('enter pr');

readln (pr);

for i: = 1 to length (pr) do

for j: = i to length (pr) do

if pr [i]> pr [j] then

begin

tmp: = pr [i];

pr [i]: = pr [j];

pr [j]: = tmp;

end;

writeln (st);

writeln (pr);

write ('dly vuhoda nagmite 0, esli prodolgit to 1');

readln (a);

if a = 0 then break

until false

end.

Рис. 9. Результати роботи програми для завдання 9

Завдання № 10

У файлі цілих чисел замінити всі парні натуральні числа їх квадратами.

Рішення

program Project1;

/ / Uses SysUtils;

var

n, i, tmp: integer;

Fin, Fout: text;

begin

assignfile (Fin, 'in.txt');

ReSet (Fin);

assignfile (Fout, 'out.txt');

ReWrite (Fout);

readln (fin, n);

for i: = 1 to n do

begin

read (fin, tmp);

if tmp mod 2 = 0 then write (fout, tmp * tmp, '')

else write (fout, tmp, '');

end;

closeFile (Fin);

closeFile (Fout);

end.


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

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

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


Схожі роботи:
Методи і способи вирішення завдань цілочисельного параметричного програмування
Застосування лінійного програмування для вирішення економічних завдань оптимізація прибутку
Оптимізаційні методи вирішення економічних завдань
Excel вирішення завдань з підбором параметрів
Програмування різних типів завдань
Використання моделювання в навчанні вирішення завдань у 5 класі
Використання інформатики для вирішення економічних завдань
Розробка формату зберігання даних програм і вирішення завдань
Додаток певного інтеграла до вирішення завдань практичного змісту
© Усі права захищені
написати до нас