Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Программирование решения задач

Работа добавлена на сайт samzan.net: 2015-07-05

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 20.5.2024

Задача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 Project4;

//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 Project9;

//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.




1. добрый человек ~ это такой человек который всем помогает и и достаточно тонко их различать например вид
2. 02420 2
3. демография демографический в различных словосочетаниях теперь нередко можно встретить в газетах услыш
4.  Фонетика и фонология 2
5. Зачем мне нужен планшет Навеяно Стивом Джобсом Зачем мне нужен планшет Хм планшет на ум ср
6. Статья будет полезна учителям и родителям Актуальность Ни для кого не секрет что в современном мире з.html
7. тема имеющая сложнейшую функциональную и территориально ~ производственную структуру включающую отраслев
8. Электронный документооборот для SMB
9. Пьер Симон Лаплас
10. отлично. С развитием товарноденежных отношений в России все более важным элементом рыночной экон
11. Дней[i] уже напечатан ответ Керенского[ii] на статью
12. Охрана атмосферного воздуха, мероприятия по охране атмосферного воздуха
13. на тему Сооружение участка магистрального газопровода с разработкой очистки полости и испытания
14.  лет после возведения в зависимости от климатических условий района и расположения здания в застройке
15. Організація та проведення ТО-1 гусеничного і колісного трактора.html
16. Органы прокуратуры, их значение и роль в осуществлении контрольно-надзорных функций
17. на тему- ГРАЖДАНСКОПРАВОВАЯ ОТВЕТСТВЕННОСТЬ Студентаки группы П1~12 Специальности 030912 Право
18. Тема- Правила зупинення кровотечі обробки ран при механічних ушкодженнях опіках та обмороженнях Мета ро
19. Формы первичной маркетинговой информации
20.  Составные компоненты анализатора- а