Читайте также: |
|
Задача №1
Создайте массив А[1..15], заполненного случайными числами от -15 до +30. Дано число X в указанном интервале. Вывести слева от числа X все элементы числового массива меньшие этого числа, а справа - большие его.
Задача №2
Введите с клавиатуры пять целочисленных элементов массива X. Выведите на экран значения корней и квадратов каждого из элементов массива
Задача №3
Данные о температуре воды на Черноморском побережье за декаду сентября хранятся в массиве T. Минимальная и максимальная температуры составляют 15° и 30°соответсвенно. Определить, сколько за это время было дней, пригодных для купания (Т > 20).
Задача №4
Найти, сколько раз каждый элемент массива целых случайных чисел встречается в массиве. Размерность массива и максимальное значение элементов массива задавать в программе. Дополнительных массивов не создавать.
Задача №5
Дано 20 вещественных чисел. Найти разницу между минимальным и максимальным из них.
Задача №6
Дано 10 вещественных чисел. Определить образуют ли они возрастающую последовательность.
Задача №7
Дано 10 целых чисел. Определить количество положительных чисел, которые делятся без остатка на 3.
Возведение в квадрат и извлечение корня Задача:№2 Введите с клавиатуры пять целочисленных элементов массива X. Выведите на экран значения корней и квадратов каждого из элементов массива. Код: | ||
program sq; var X: array[1..5] of longint; i: integer; Begin Writeln('Введите 5 целых чисел:'); for i:= 1 to 5 do Read(X[i]); Writeln; for i:= 1 to 5 do begin Write('X[',i,']= ',X[i]:5,' '); Write('sqr(',X[i]:5,')= ',sqr(X[i]):10,' '); Writeln('sqrt(',X[i]:5,')= ',sqrt(X[i]):5:5,' '); end; Readln; Readln; End. |
Вывод массива на экран Задача: Создайте массив А[1..15], заполненного случайными числами от-15 до 30. Дано число X. Вывести слева от числа X все элементы числового массива меньшие этого числа, а справа - большие его. Код: | ||
program mb; var A: array[1..15] of integer; X, i: integer; Begin X:= 10; Randomize; for i:= 1 to 15 do begin A[i]:= Random(46)-15; if A[i] < X then write(A[i],' '); {выводим элементы, меньшие Х} end; Write(X, ' '); {сам Х} for i:= 1 to 15 do if A[i] > X then write(A[i],' '); {и элементы больше него} Readln; End. |
Троичная система Задача: Дано натуральное n, напечатать в троичной системе счисления все числа от нуля до n. См. также "Системы счисления с основанием k". Код: | ||
program Three_sys; uses crt; const lim=20; {размер массива} var n, i, p:longint; {n-число} j, r:integer; mas:array[1..lim] of integer; {массив, в котором храниться число в троичной записи} Begin clrscr; Write('Введите n: '); Readln(n); for i:= 0 to n do {перебираем все числа до n} begin p:=i; {сохраняем i в p} for j:= 1 to lim do {цикл по всем элементам массива} begin mas[j]:= p mod 3; {остаток от деления в массив} p:= p div 3; {целое от деления будем дальше делить} end; for j:= 1 to lim do if (mas[j]<>0) then r:=j; {считаем число ненулевых ячеек в массиве} if i= 0 then r:=1; Write(i,' = '); {вывод числа} for j:= 1 to r do {и его троичной записи} Write(mas[r-j+1]); {идем от конца массива} for j:= 1 to lim do mas[lim-j+1]:=0; {обнуляем массив} Writeln; end; Readln; end. |
Системы счисления Задача1: подсчитать количество цифр в записи числа n в системе счисления с основанием k. Код: | ||
program n_in_k_sys; uses crt; var n, p:longint; {n-число} j, r, k:integer; Begin clrscr; Write('Введите n: '); Readln(n); Write('Введите k: '); Readln(k); p:=n; {сохраняем n в p} while p > 0 do begin p:= p div k; {целое от деления будем дальше делить} inc(r); {инкремент или увеличение на 1} end; if n = 0 then r:=1; Write('n в системе счисления с основанием ',k,' займет ',r,' разрядов'); {вывод} Readln; end. Задача2: вывести представление этого числа на экран в системе k. Описание: Сделаем вывод этого числа на экран. Для его представления будем брать символы из таблицы кодов ASCII(смотри функцию Chr). Эта программа написана на основе "Троичная система". Код: program n_in_k_sys_2; uses crt; const lim=20; {размер массива} var n, p:longint; {n-число} j, r, k:integer; mas:array[1..lim] of integer; {массив, в котором храниться число в k-ичной записи} Begin clrscr; Write('Введите n: '); Readln(n); Write('Введите k: '); Readln(k); p:=n; {сохраняем n в p} for j:= 1 to lim do {цикл по всем элементам массива} begin mas[j]:= p mod k; {остаток от деления в массив} p:= p div k; {целое от деления будем дальше делить} end; for j:= 1 to lim do if (mas[j]<>0) then r:=j; {считаем число ненулевых ячеек в массиве} if n= 0 then r:=1; Writeln('n в системе счисления с основанием ',k,' займет ',r,' разрядов'); {вывод числа} Write(n,' in 10 = '); for j:= r downto 1 do Write(Chr(mas[j]+48)); {выводим число, кодируя его символами таблицы ASCII} Write(' in ',k); Readln; end. |
Бархатный сезон Задача:Задача №3 Данные о температуре воды на Черноморском побережье за декаду сентября хранятся в массиве Определить, сколько за это время было дней, пригодных для купания (Т > 20). Код: | ||
program Temperature; var i,n: integer; T: array[1..10] of integer; Begin Randomize; for i:= 1 to 10 do begin T[i]:= 15 + Random(15); Write(T[i], ' '); if T[i] > 20 then inc(n); end; Writeln; Write('Дней для купания: ',n); Readln; End. |
Вычисления Задача: Даны K,L,P. Вычислить Z=корень квадратный из (L-P2)/L*P; и S=sinZ+K2/cosK Код: | ||
program klp; var k,l,p: integer; s,z: real; Begin repeat Write('Введите k,p,l: '); Readln(k,p,l); until (p*l <> 0) and ((l- sqr(p))/(l*p) > 0); {чтобы не было деления на 0 и} {подкоренное выражение не меньше 0} z:= sqrt((l- sqr(p))/(l*p)); s:= sin(z) + sqr(k)/cos(k); Writeln('z= ',z:6:6); Writeln('s= ',s:6:6); Readln; End. |
Разложение ln(x) в ряд Тейлора Задача: Используя разложение в ряд Тейлора найти значение ln(x) с заданной точностью e. Описание: Код: | ||
program lnx_teilor; var x,stx,lnt,e: real; i,fakt,z: integer; Begin Write('Введите 1 < x < 2: '); Readln(x); Write('Введите точность e: '); Readln(e); stx:= x-1; {x в степени} fakt:= 1; {значение знаменателя} lnt:= 0; {первый элемент в разложении} i:= 1; {счётчик} z:= 1; {знак элемента} while stx/fakt>=e do begin {до тех пор, пока элемент в разложении не меньше точности} lnt:=lnt+z*stx/fakt; inc(i); stx:=stx*(x-1); fakt:=i; z:=z*(-1); {смена знака} end; Writeln('Количество элементов в разложении = ',i); Writeln('Значение ln(',x:6:6,')= ',lnt:6:6); Writeln('Значение компьютера: ',ln(x):6:6); Readln; End. |
Разложение ex в ряд Тейлора Задача: Используя разложение в ряд Тейлора найти значение ex с заданной точностью e. Описание: Код: | ||
program ex_teilor; var x,stx,ex,e: real; i,fakt: integer; Begin Write('Введите x: '); Readln(x); Write('Введите точность e: '); Readln(e); stx:=x; {x в степени} fakt:=1; {значение факториала в знаменателе} ex:=1; {первый элемент в разложении} i:=1; {счётчик} while stx/fakt>=e do begin {до тех пор, пока элемент в разложении не меньше точности} ex:=ex+stx/fakt; inc(i); stx:=stx*x; fakt:=fakt*i; end; Writeln('Количество элементов в разложении = ',i+1); Writeln('Значение e^',x:6:6,'= ',ex:6:6); Writeln('Значение компьютера: ',exp(x):6:6); Readln; End. |
Разложение гиперболического косинуса в ряд Тейлора Задача: Используя разложение в ряд Тейлора найти значение ch(x) с заданной точностью e. Описание: Код: | ||
program ch_teilor; var x,stx,ch,e: real; i,fakt: integer; Begin Write('Введите x: '); Readln(x); Write('Введите точность e: '); Readln(e); stx:= x*x; {x в степени} fakt:= 2; {значение факториала в знаменателе} ch:= 1; {первый элемент в разложении} i:= 2; {счётчик} while stx/fakt>=e do begin {до тех пор, пока элемент в разложении не меньше точности} ch:=ch+stx/fakt; inc(i,2); stx:=stx*x*x; fakt:=fakt*(i-1)*i; end; Writeln('Количество элементов в разложении = ',i div 2 + 1); Writeln('Значение ch(',x:6:6,')= ',ch:6:6); Readln; End. |
Разложение синуса в ряд Тейлора Задача: Используя разложение в ряд Тейлора найти значение sin(x) с заданной точностью e. Описание: Код: | ||
program sin_teilor; var x,stx,sint,e: real; i,fakt,z: integer; Begin Write('Введите x: '); Readln(x); Write('Введите точность e: '); Readln(e); stx:= x; {x в степени} fakt:= 1; {значение факториала в знаменателе} sint:= 0; {первый элемент в разложении} i:= 1; {счётчик} z:= 1; {знак элемента} while stx/fakt>=e do begin {до тех пор, пока элемент в разложении не меньше точности} sint:=sint+z*stx/fakt; inc(i,2); stx:=stx*x*x; fakt:=fakt*(i-1)*i; z:=z*(-1); {смена знака} end; Writeln('Количество элементов в разложении = ',i div 2); Writeln('Значение sin(',x:6:6,')= ',sint:6:6); Writeln('Значение компьютера: ',sin(x):6:6); Readln; End. |
Сортировка массива I Задача: Сортировка массива методом пузырька. Описание: Эту сортировку так называют потому, что при обработке массива более "лёгкие" элементы перемещаются вверх. Код: | ||||
program pyz; const n = 20; var V:array[1..n] of integer; i,j,tmp:integer; begin Randomize; for i:=1 to n do V[i]:= Random(100); Writeln('Исходный массив: '); for i:=1 to n do Write(V[i],' '); for i:=1 to n-1 do for j:=i+1 to n do if V[i] >= V[j] then begin tmp:= V[i]; V[i]:= V[j]; V[j]:= tmp; end; Writeln; Writeln('Упорядоченный по неубыванию массив: '); for i:=1 to n do Write(V[i],' '); Readln; End. По убыванию элементов: Код: program pyz; const n = 20; var V:array[1..n] of integer; i,j,tmp:integer; begin Randomize; for i:=1 to n do V[i]:= Random(100); Writeln('Исходный массив: '); for i:=1 to n do Write(V[i],' '); for i:=1 to n-1 do for j:=i+1 to n do if V[i] < V[j] then begin tmp:= V[i]; V[i]:= V[j]; V[j]:= tmp; end; Writeln; Writeln('Упорядоченный по убыванию массив: '); for i:=1 to n do Write(V[i],' '); Readln; End. | ||||
Сортировка массива II Задача: Сортировка массива c помощью рекурсивной функции, меняющей местами соседние элементы массива Описание: В функции, которая упорядочивает массив имеется флаг, который сбрасывается, когда обнаруживается нарушение порядка. Затем производится перестановка элементов и флаг восстанавливается в истину. Далее, вызовом этой же функции, проверяется следование всех элементов, и если все упорядочено, то функция завершается. Код: | ||||
program smass; {сортировка массива по возрастанию} uses crt; const N = 20; {размер массива} var A:Array[1..N] of integer; {Массив чисел} i, s: integer; {счетчики} flag: boolean; {флаг} Procedure SMass; begin {пусть массив упорядочен} flag:= true; {установка флага в истину} for i:= 1 to N - 1 do {проверка массива--} if A[i] > A[i+1] then begin {если i-ый элемент больше (i+1)-го, то} s:= A[i]; {меняем их местами} A[i]:= A[i+1]; A[i+1]:= s; flag:= false; {и флаг ставим в ложь, так как} end; {порядок был нарушен} {если были проведены перестановки, то заново проверяем массив, рекурсивно} if flag = false then SMass; {вызывая эту же процедуру} end; Begin clrscr; {очистка экрана} Randomize; for i:= 1 to N do begin {задание массива случайными числами} A[i]:=Random(100); {--} Write(A[i], ' '); {вывод на экран} end; SMass; {вызов процедуры} Writeln; Writeln; for i:= 1 to N do {вывод упорядоченного массива} Write(A[i], ' '); {--} readln; End. | ||||
Дата добавления: 2015-07-10; просмотров: 242 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Января 2015 года, 12-е лунные сутки, 11-е солнечные | | | Перевод числа из десятичной системы счисления в шестнадцатеричную систему счисления |