Автор работы: Пользователь скрыл имя, 13 Ноября 2010 в 18:25, Не определен
решение задач с массивами
End.
Задание 38.
Даны координаты
вершин треугольника. Найти его периметр.
Program p6;
Var x1,y1,x2,y2,x3,y3:real;
Procedure Perimetr(x1,y1,x2,y2,x3,y3:
Var P,d1,d2,d3:real;
Begin
d1:=Sqrt(sqr(x1-x2)+sqr(y1-y2)
Writeln('dlina1=',d1:2:2);
d2:=Sqrt(sqr(x2-x3)+sqr(y2-y3)
Writeln('dlina2=',d2:2:2);
d3:=Sqrt(sqr(x1-x3)+sqr(y1-y3)
Writeln('dlina3=',d3:2:2);
If (d1+d2>d3) and (d2+d3>d1) and (d1+d3>d2) then
P:=d1+d2+d3 else
Writeln('Takogo treygolnika ne sychestvyet');
Writeln('Perimetr=',P:2:2);
End;
Begin
Writeln('vvedite koordinati');
Write('x1='); Readln(x1);
Write('x2='); Readln(x2);
Write('x3='); Readln(x3);
Write('y1='); Readln(y1);
Write('y2='); Readln(y2);
Write('y3='); Readln(y3);
Perimetr(x1,y1,x2,y2,x3,y3);
Readln;
End.
Задание 39.
Определить среднесуточную
температуру, если показания термометра:
утром-no C, вечером- ko
C, днем- mo C.
Program p3;
Var n,k,m:real;
Procedure Temperatyra(n,k,m:real);
Var sst:real;
Begin
sst:=(n+k+m)/3;
Writeln('Temperatyra=',sst:2:
End;
Begin
Writeln('vvedite pokazaniya termometra ytrom,vecherom i dnem');
Readln(n,k,m);
Temperatyra(n,k,m);
readln;
End.
Задание 40.
За какое время
пешеход доберется до соседнего
города, если его скорость равна
V(км/ч), а расстояние- S(км).
Program p2;
Var S,v:real;
Procedure Vremya(s,v:real);
Var t:real;
Begin
t:=s/v;
Writeln('Vremya=',t:2:2);
End;
Begin
Writeln('vvedite skorost i rasstoyanie');
readln(s,v);
Vremya(s,v);
Readln;
End.
Задание 41.
Найти площадь
круга S, вписанного в квадрат со стороной
a.
Program p5;
Var a:real;
Procedure Ploschad(a:real);
Var s:real;
Begin
S:=pi*sqr(a/2);
Writeln('ploschad=',s:2:2);
End;
Begin
Writeln('vvedite dliny storoni a');
Readln(a);
Ploschad(a); Readln; End.
Задание 42.
Найти значение
выражения y= (a+b+c)2 .
Program p4;
Var a,b,c,d:real;
Procedure Virazhenie(a,b,c,d:real);
Var y:real;
Begin
d:=3;
a:=2*d;
b:=3*d;
c:=d/2;
y:=sqr(a+b+c);
Writeln('Virazhenie=',y:2:2);
End;
Begin
Virazhenie(a,b,c,d);
Readln;
End.
Вариант-
5.
Задание 43.
Дан одномерный массив. Найти и вывести на экран значения и номера элементов не превосходящих контрольное число. Оформить процедурой.
Program p2;
Var a:array[1..5] of integer; i,n:integer;
Procedure Massiv(a:array of integer;n:integer);
Var i:integer;
begin
for i:=0 to 5 do
If a[i]<=n then begin
Writeln('a[',i,']=' ,a[i]);
end;end;
Begin
Writeln('vvedite kontrolnoe chislo');
Readln(n);
Writeln('vvedite massiv');
For i:=1 to 5 do
Readln(a[i]);
Massiv(a,n);
Readln;
End.
Задание 44.
Дана функция
y=ax3+bx2+cx+d. Вывести в виде таблицы
значения функции на отрезке [-k,k]. Вычисления
оформить функцией y(a,b,c,d,k).
Program p3;
Var a,b,c,d,y:real;
x,k:integer;
Function Tablica(a,b,c,d:real; x:integer):real;
Begin
Tablica:=a*x*x*x+b*sqr(x)+c*x+
End;
Begin
Writeln('vvedite znacheniya fynccii');
Readln(a,b,c,d,k);
For x:=-k to k do
begin
y:=Tablica(a,b,c,d,x);
Writeln('y=',y:2:2);
End;
Readln;
End.
Задание 45.
Даны 4 числа
a,b,c,d. Найти объемы параллелепипедов на
отрезках a,b,c,d. Среди объемов найти наименьший.
Вычисление объемов оформить функцией
V(a,b,c).
Program p4;
Var v:array[1..4] of integer;
min,i, a,b,c,d,v1,v2,v3,v4:integer;
Function Obem(a,b,c,d:integer):integer;
Begin
obem:=a*b*c;
end;
Begin
Writeln('vvedite znacheniya peremennih');
readln(a,b,c,d);
v[1]:=obem(a,b,c,d);
v[2]:=obem(d,c,b,a);
v[3]:=obem(b,a,d,c);
v[4]:=obem(c,d,a,b);
for i:=1 to 4 do Writeln('obem',i,'
min:=v[1];
for i:=1 to 4 do
if v[i]<min then
min:=v[i];
writeln('min=',min);
Readln;
End.
Комбинированный тип.
Объявление записи.
Задание 46.
Дан список учащихся из 10 записей. Каждая запись имеет поле фамилия, имя, номер класса, буква.
а) Найти
однофамильцев из одного
б) Найти
двух учащихся тезок.
Program z;
type ycheniki=record
fam:string[15];
imya:string[10];
class:record
bykva:char;
god:integer;
end;
end;
var spisok:array [1..6] of ycheniki;
i,j:integer;
begin
for i:=1 to 6 do begin
with spisok[i] do begin
writeln('vvedite familiu ychenika',i);
readln(fam);
writeln('vvedite imya',i);
readln(imya);
writeln('vvedite ego klass',i);
readln(class.god);
writeln('vvedite bykvy klassa');
readln(class.bykva);
end;end;
writeln;
writeln('spisok odnofamilcev v odnom klasse:');
for i:=1 to 5 do
for j:=i+1 to 6 do
if (spisok[i].fam=spisok[j]. fam) and
(spisok[i].class.god=spisok[j]
and
(spisok[i].class.bykva=spisok[
then writeln(spisok[j].fam, ' ',spisok[i].imya, ' ',
spisok[i].class.god.bykva,' ',
spisok[j].imya, ' ',spisok[j].class.god.bykva);
writeln('Ychashiesya tezki:');
for i:=1 to 5 do
for j:=i+1 to 6 do
if (Spisok[i].fam=spisok[j].fam)
then
writeln(spisok[j].fam, ' ', spisok[i].imya, ' ',spisok[i].class.god.bykva,' ',
spisok[j].imya, ' ', spisok[j].class.god.bykva);
writeln('Spisok ychashixsya s odinakovoi bykvoi klassa:');
for i:=1 to 5 do
for j:=i+1 to 6 do
if spisok[i].class.bykva=spisok[
then
writeln(spisok[i].fam, ' ',spisok[i].imya, ' ',spisok[i].class.god, ' ',
(spisok[j].fam, ' ',spisok[j].imya, ' ',spisok[j].class.god);
readln;
Задание 47.
Написать программу, выдающую сведения об ассортименте игрушек в магазине. Структура записи: название игрушки, цена, количество, возрастные границы.
А)вывести названия игрушек,
Б)самая дорогая игрушка;
В)название игрушки, которая
Program Assortiment;
type Igryshki=record
name:string[15];
cena:integer;
kol:integer;
vozr:integer;
end;
var Magazin:array [1..6] of Igryshki;
i,j,max,x,a,b:integer;
Begin
for i:=1 to 6 do begin
with igryshki[i] do begin
writeln('Vvedite nazvanie igryshki',i);
readln(name);
writeln('Cena:');
readln(cena);
writeln('Kolichestvo:');
readln(kol);
writeln('Vozrastnie granici:');
readln(vozr);
end;end;
Writeln;
Writeln('Samaya dorogaya igryshka:');
max:=igryshki[1].cena;
For i:=1 to 6 do
if igryshki[i].cena>max then begin
max:=igryshki[i].cena;
Writeln(igryshki[i].name, ' ', max); end;
Writeln('Igryshki dlya detei v vozraste 3 let:');
For i:=1 to 6 do
if igryshki[i].vozr=3 then begin
Writeln(igryshki[i].name, ' stoimostu ',igryshki[i].cena, 'tg'); end;
writeln('vvedite stoimost');
readln(x);
For i:=1 to 6 do
if (igryshki[i].cena<x) then begin
writeln('Igryshki ' ,igryshki[i].name, 'stoimostu ' ,igryshki[i].cena,' ne previshaut ',x,' tg' ); end;
writeln('vvedite vozrast ');
readln(a);
For i:=1 to 6 do
if igryshki[i].vozr=a then begin
writeln(igryshki[i].name , 'podxodyat dlya vozrasta' , igryshki[i].vozr); end;
readln;
end.
Задание 48.
Список книг состоит из 10 записей:
Поля: Фамилия автора;
Название книги;
Год издания;
Количество страниц;
а) Найти название книг данного автора, изданных с 1960 года.
б) Определить имеются
ли книги с названием «
в) Вывести название
книг и их авторов, если количество
страниц превосходит среднее
количество страниц по всему списку.
PROGRAM P1;
Type knigi=record
fam:string;
Информация о работе Одномерные массивы. Организация ввода и вывода данных