Одномерные массивы. Организация ввода и вывода данных

Автор работы: Пользователь скрыл имя, 13 Ноября 2010 в 18:25, Не определен

Описание работы

решение задач с массивами

Файлы: 1 файл

Одномерные массив1.doc

— 238.50 Кб (Скачать файл)

End. 

Задание 38.

Даны координаты вершин треугольника. Найти его периметр. 

Program p6;

Var x1,y1,x2,y2,x3,y3:real;

Procedure Perimetr(x1,y1,x2,y2,x3,y3:real);

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: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+d;

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,'parallelepipeda=',v[i]:2);

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].class.god)

     and (spisok[i].class.bykva=spisok[j].class.bykva)

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)and(spisok[i].imya=spisok[j].imya)

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[j].class.bykva

then

    writeln(spisok[i].fam, ' ',spisok[i].imya, ' ',spisok[i].class.god, ' ',

           (spisok[j].fam, ' ',spisok[j].imya, ' ',spisok[j].class.god);

readln; 
 

Задание 47.

Написать программу, выдающую сведения об ассортименте игрушек  в магазине. Структура записи: название игрушки, цена, количество, возрастные границы.

      А)вывести названия игрушек, которые  подходят детям до 3 лет;

      Б)самая дорогая игрушка;

      В)название игрушки, которая по  стоимости не превышает х тг  и подходит ребенку в возрасте  до а лет. 

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;

Информация о работе Одномерные массивы. Организация ввода и вывода данных