|
Решенные задачи по информатике!
1. Найти сумму цифр введенного с клавиатуры натурального числа N.
2. Program zadanie_1;
3. uses crt;
4. var a,b,n,sum: integer;
5. begin
6. writeLn('vvedite chisla');
7. read (n);
8. b:= n mod 10;
9. while n>0 do
10. begin
11. if n div 10 = 0 then
12. a:= n mod 10;
13. sum:= sum + (n mod 10);
14. n:= n div 10;
15. end;
16. writeln ('poluchennaya summa');
17. writeln (sum);
18. end.
19.
2. Найти вторые минимальный и максимальный элементы заданного с клавиатуры целочисленного вектора V длиной n элементов.
Program number_2;
Uses CRT;
var
v: array [1..1000] of integer;
max_i,min_i,i,max,min,n:integer;
begin
clrscr;
write('Введите длину вектора n=');
ReadLn(n);
// заполнение вектора
For i:=1 To n Do
begin
Write('v[',i,']=');
Readln(v[i]);
end;
// вывод на экран исходного вектора
For i:=1 To n Do
Write(v[i]:4);
Writeln;
// Ищем индексы максимального и минимального элементов
max:=1;
min:=1;
for i:=2 to n do
begin
if (v[i]>v[max])
then
max:=i;
if (v[i]<v[min])
then
min:=i;
end;
//Ищем индексы второго максимального и второго минимального элементов
max_i:=1;
min_i:=1;
for i:=2 to n do
begin
if ((v[i]>v[max_i]) and (v[i]<v[max]))
then
max_i:=i;
if ((v[i]<v[min_i]) and (v[i]>v[min]))
then
min_i:=i;
end;
writeln('второй максимальный=',v[max_i]);
writeln('второй минимальный=',v[min_i]);
end.
3. Массив Anm заполнен построчно слева направо и сверху вниз натуральными числами от 1 до n*m. По заданному значению элемента массива определить его индексы – номер строки и столбца.
Program prog3;
uses CRT;
var
i,j,i_el,j_el,num,n,m: integer;
v: Array [1..1000,1..1000] Of Integer;
begin
write('Введите количество строк n:');
readln(n);
write('Введите количество столбцов m:');
readln(m);
writeLn('Ввод массива:');{ввод исходных данных}
For i:=1 To n Do {заполнение массива случайными числами}
For j:=1 To m Do
V[i,j]:=(i-1)*m+j;
write('Введите натуральное число для поиска от 1 до ',n*m,':');
readln(num);
writeLn;
For i:=1 To n Do
begin
For j:=1 To m Do
begin
write(V[i,j]:5);
IF V[i,j]=num then
begin
i_el:=i;
j_el:=j;
end;
end;
writeLn;
end;
writeln('Номер строки:', i_el);
writeln('Номер столбца:', j_el);
end.
4. Сдвинуть на k шагов вправо элементы заданного вектора An
5. В заданном целочисленном векторе An определить самую длинную последовательность идущих подряд одинаковых элементов.
6. В заданном целочисленном массиве Anm поменять местами вторые минимальный и максимальный элементы массива.
Program number_6;
Uses CRT;
var
v: array [1..1000] of integer;
max_i,min_i,i,max,min,n,temp:integer;
begin
clrscr;
write('Введите длину вектора n=');
ReadLn(n);
// заполнение вектора
For i:=1 To n Do
begin
Write('v[',i,']=');
Readln(v[i]);
end;
// вывод на экран исходного вектора
For i:=1 To n Do
Write(v[i]:4);
Writeln;
// Ищем индексы максимального и минимального элементов
max:=1;
min:=1;
for i:=2 to n do
begin
if (v[i]>v[max])
then
max:=i;
if (v[i]<v[min])
then
min:=i;
end;
//Ищем индексы второго максимального и второго минимального элементов
max_i:=1;
min_i:=1;
for i:=2 to n do
begin
if ((v[i]>v[max_i]) and (v[i]<v[max]))
then
max_i:=i;
if ((v[i]<v[min_i]) and (v[i]>v[min]))
then
min_i:=i;
end;
writeln('второй максимальный=',v[max_i]);
writeln('второй минимальный=',v[min_i]);
//меняем местами второй макс и второй мин
temp:=v[max_i];
v[max_i]:=v[min_i];
v[min_i]:=temp;
Writeln;
// вывод на экран результата
For i:=1 To n Do
Write(v[i]:4);
Writeln; end.
7. В заданном целочисленном массиве Anm поменять местами первый отрицательный и последний положительный элементы.
8. Program prog;
9. uses CRT;
10. Const n = 5;
11. m = 4;
12.var
13.i,j,tmp,i_pol,j_pol,i_otr,j_otr,v_min,v_max: integer;
14.A: Array [1..n,1..m] Of Integer;
15.
16.begin
17.Randomize;
18. WriteLn('Задайте диапазон случайных чисел');
19. Write('v_min=');
20. ReadLn(v_min);
21. Write('v_max=');
22. ReadLn(v_max);
23.
24.
25. For i:=1 To n Do
26. For j:=1 To m Do
27. begin
28.A[i,j]:=Random(v_max-v_min + 1) + v_min; {A[i,j]:=Random(100)-50;заполнение массива случайными числами}
29. end;
30.
31. writeLn('Исходный массив:');
32. For i:=1 To n Do
33. begin
34. For j:=1 To m Do
35.write(A[i,j]:5);
36. writeln;
37. end;
38. j:=1;
39. i:=1;
40. while (A[i,j]>=0) and (i*j<=n*m) do
41. begin
42.j:=j+1;
43. IF j=n then
44. begin
45.j:=0;
46. i:=i+1;
47. end;
48.
49. end;
50. i_otr:=i;
51. j_otr:=j;
52. j:=m;
53. i:=n;
54. while (A[i,j]<=0) and (i*j>0) do
55. begin
56.j:=j-1;
57. IF j=1 then
58. begin
59.j:=0;
60. i:=i-1;
61. end;
62. end;
63. i_pol:=i;
64. j_pol:=j;
65. writeln;
66.
67.
68. tmp:=A[i_otr,j_otr];
69. A[i_otr,j_otr]:=A[i_pol,j_pol];
70. A[i_pol,j_pol]:=tmp;
71. writeLn;
72. writeLn('Результат:');
73. For i:=1 To n Do
74. begin
75. For j:=1 To m Do
76.write(A[i,j]:5);
77. writeln;
78. End;
79. end.
8. В заданном целочисленном векторе An поменять местами первый отрицательный и последний положительный элементы.
Program prog;
uses CRT;
Const n = 7;
var
i,st,i_pol,i_otr,v_min,v_max: integer;
A: Array [1..n] Of Integer;
begin
Randomize;
WriteLn('Задайте диапазон случайных чисел');
Write('v_min=');
ReadLn(v_min);
Write('v_max=');
ReadLn(v_max);
For i:=1 To n Do
A[i]:=Random(v_max-v_min + 1) + v_min; {заполнение массива случайными числами}
writeLn('Начальный вектор:');
For i:=1 To n Do
write(A[i]:4);
i:=1;
while (A[i]>=0) and (i<=n) do
i:=i+1;
i_otr:=i;
i:=n;
while (A[i]<=0) and (i>0) do
i:=i-1;
i_pol:=i;
writeln;
st:=A[i_otr];
A[i_otr]:=A[i_pol];
A[i_pol]:=st;
writeLn;
writeLn('Результат:');
For i:=1 To n Do
write(A[i]:4);
writeLn;
end.
9. В заданном целочисленном векторе An поменять местами вторые максимальный и минимальный элементы вектора.
Program number_9;
Uses CRT;
var
v: array [1..1000] of integer;
max_i,min_i,i,max,min,n,temp:integer;
begin
clrscr;
write('Введите длину вектора n=');
ReadLn(n);
// заполнение вектора
For i:=1 To n Do
begin
Write('v[',i,']=');
Readln(v[i]);
end;
// вывод на экран исходного вектора
For i:=1 To n Do
Write(v[i]:4);
Writeln;
// Ищем индексы максимального и минимального элементов
max:=1;
min:=1;
for i:=2 to n do
begin
if (v[i]>v[max])
then
max:=i;
if (v[i]<v[min])
then
min:=i;
end;
//Ищем индексы второго максимального и второго минимального элементов
max_i:=1;
min_i:=1;
for i:=2 to n do
begin
if ((v[i]>v[max_i]) and (v[i]<v[max]))
then
max_i:=i;
if ((v[i]<v[min_i]) and (v[i]>v[min]))
then
min_i:=i;
end;
writeln('второй максимальный=',v[max_i]);
writeln('второй минимальный=',v[min_i]);
//меняем местами второй макс и второй мин
temp:=v[max_i];
v[max_i]:=v[min_i];
v[min_i]:=temp;
Writeln;
// вывод на экран результата
For i:=1 To n Do
Write(v[i]:4);
Writeln;
end.
13.Произвести сортировку по возрастанию элементов заданного целочисленного вектора An.
Program prog;
uses CRT;
Const n = 5;
var
i,j,k,v_min,v_max: integer;
A: Array [1..n] Of Integer;
begin
Randomize;
WriteLn('Задайте диапазон случайных чисел');
Write('v_min=');
ReadLn(v_min);
Write('v_max=');
ReadLn(v_max);
For i:=1 To n Do
A[i]:=Random(v_max-v_min + 1) + v_min; {заполнение массива случайными числами}
writeLn('Исходный массив:');
For i:=1 To n Do
write(A[i]:4);
writeln;
For i:=n DownTo 1 Do
For j:=1 To i-1 Do
If (A[j]>A[j+1]) Then
begin
k:=A[j+1];
A[j+1]:=A[j];
A[j]:=k;
end;
writeLn('Результат:');
For i:=1 To n Do
write(A[i]:4);
writeln;
end.
15.Определить, является ли введенное слово палиндромом – одинаково читающимся как слева направо, так и справа налево: шалаш.
program eckz;
uses crt;
var str: string;
i,n: integer;
begin
write('Введите строку: ');
readln(str);
writeln;
i:=1;
n:=length(str);
while (str[i]=str[n-i+1]) and (i<>round(n/2)+1) do
i:=i+1;
If i=round(n/2)+1 then
writeln('палиндром')
else
writeln('Не палиндром');
end.
19.Сформировать вектор Bn из элементов заданной целочисленной матрицы Ann по следующему алгоритму: очередной элемент вектора bi – это максимальный элемент i-ой строки исходной матрицы.
20. Program prog;
21. uses CRT;
22. Const n = 3;
23. var
24. i,j,max,v_min,v_max: integer;
25. A: Array [1..n,1..n] Of Integer;
26. B: Array [1..n] Of Integer;
27. begin
28. Randomize;
29. WriteLn('Задайте диапазон случайных чисел');
30. Write('v_min=');
31. ReadLn(v_min);
32. Write('v_max=');
33. ReadLn(v_max);
34. For i:=1 To n Do
35. For j:=1 To n Do
36. A[i,j]:=Random(v_max-v_min + 1) + v_min;;{заполнение массива случайными числами}
37.
38. writeLn('Исходный массив:');
39. For i:=1 To n Do
40. begin
41. For j:=1 To n Do
42. write(A[i,j]:5);
43. writeln;
44. end;
45. For i:=1 to n do
46. begin
47. max:=A[i,1];
48. For j:=2 To n Do
49. If max<A[i,j] then
50. max:=A[i,j];
51. B[i]:=max;
52. end;
53. writeln('Результат:');
54. For i:=1 To n Do
55. write(B[i]:5);
56. writeln;
57. end.
20. Сформировать вектор Bn из элементов заданной целочисленной матрицы Ann по следующему алгоритму: очередной элемент вектора bi – это минимальный элемент i-ого столбца исходной матрицы.
Program prog;
uses CRT;
Const n = 3;
var
i,j,min,v_min,v_max: integer;
A: Array [1..n,1..n] Of Integer;
B: Array [1..n] Of Integer;
begin
Randomize;
WriteLn('Задайте диапазон случайных чисел');
Write('v_min=');
ReadLn(v_min);
Write('v_max=');
ReadLn(v_max);
For i:=1 To n Do
For j:=1 To n Do
A[i,j]:=Random(v_max-v_min + 1) + v_min;{заполнение массива случайными числами}
writeLn('Исходный массив:');
For i:=1 To n Do
begin
For j:=1 To n Do
write(A[i,j]:5);
writeln;
end;
For i:=1 to n do
begin
min:=A[1,i];
For j:=2 To n Do
If min>A[j,i] then
min:=A[j,i];
B[i]:=min;
end;
writeln('Результат:');
For i:=1 To n Do
write(B[i]:5);
writeln;
end.
21. В заданном целочисленном массиве Ann определить максимальный элемент из элементов, расположенных выше главной диагонали, и минимальный – ниже главной диагонали.
Program prog;
uses CRT;
Const n = 3;
var
i,j,min,max,v_min,v_max: integer;
A: Array [1..n,1..n] Of Integer;
B: Array [1..n] Of Integer;
begin
Randomize;
WriteLn('Задайте диапазон случайных чисел');
Write('v_min=');
ReadLn(v_min);
Write('v_max=');
ReadLn(v_max);
For i:=1 To n Do
For j:=1 To n Do
A[i,j]:=Random(v_max-v_min + 1) + v_min;{заполнение массива случайными числами}
writeLn('Исходный массив:');
For i:=1 To n Do
begin
For j:=1 To n Do
write(A[i,j]:5);
writeln;
end;
max:=A[1,2];
min:=A[2,1];
For i:=1 to n-1 do
begin
For j:=i+1 To n Do
If max<A[i,j] then
max:=A[i,j];
For j:=i+1 To n Do
If min>A[j,i] then
min:=A[j,i];
end;
writeln('Максимальный выше главной диагонали = ', max);
writeln('Минимальный ниже главной диагонали = ', min);
end.
23.В заданном целом положительном числе N определить наибольшую и наименьшую цифры.
Program prog;
Uses Crt;
Var
N:LongInt;
max, min, d: Integer;
ch:longint;
Begin
Randomize;
WriteLn('Введите число:');
Read(N);
WriteLn;
d:=N mod 10;
max:=d;
min:=d;
N:=N div 10;
{цикл нахождение макс мин}
Repeat
d:=(N mod 10);
If d>max then begin
max:=d;
end;
If d<min then begin
min:=d;
end;
N:=N div 10;
Until n=0;
writeln('Минимальная цифра = ', min);
writeln('Максимальая цифра = ', max);
end.
Дата добавления: 2015-10-21; просмотров: 52 | Нарушение авторских прав
<== предыдущая лекция | | | следующая лекция ==> |
Вебинар «Бизнес-план Партнера WL» | | |