Задачи в паскале на массивы

Тема в разделе "Pascal and Delphi", создана пользователем adler54, 14 июн 2010.

Наш партнер Genesis Hackspace
  1. adler54

    adler54 Гость

    1) Найти дробную часть вещественного числа х, если целые числа вводимые с экрана положительные; x=y/z
    --------------------------------------------------------------------------
    Код (Text):
    if(y>0)and(z>0) then
    begin
    x:=frac(y/z);
    writeln(x:0:5);
    end;
    --------------------------------------------------------------------------


    2) Из N вещественных чисел, задаваемых оператора ввода, найти отрицательные и вывести на экран целую и дробную часть этих чисел отдельно

    3) Найти среднеарифметическое элементов вещественного массива А1,А2...Аn предшествующих первому элементу, большему 50.
    n-длина массива
    А1,А2...Аn -массив
    --------------------------------------------------------------------------
    Код (Text):
    uses crt;
    const max=100;
    var a:array[1..max] of real;
    n,i,j:byte;
    sr:real;
    begin
    clrscr;
    randomize;
    repeat
    write('Размер массива n=');
    readln(n);
    until n in [1..max];
    writeln('Исходный массив:');
    for i:=1 to n do
    begin
    a[i]:=60*random;
    write(a[i]:5:1);
    end;
    writeln;
    writeln;
    i:=1;{начало массива}
    j:=0;{индекс искомого элемента}
    while(i<=n)and(j=0)do{пока не конец и элемент не больше 50}
    if a[i]>50 then j:=i{идем и ищем, нашли, запомнили}
    else i:=i+1;{иначе вперед}
    if j=0 then write('Элементов больше 50 в массиве нет')
    else if j=1 then write('Элемент больше 50 первый, предшествующих нет')
    else
    begin
    writeln('Первый элемент больше 50=',a[j]:0:1,' его индекс=',j);
    sr:=0;
    for i:=1 to j-1 do sr:=sr+a[i];{}
    sr:=sr/(j-1);{}
    write('Среднее до первого элемента больше 50=',sr:0:1);
    end;
    readln
    end.
    -------------------------------------------------------------------------

    Что смог наклёпал, но препода не устраивает, подскажите товарищи )
     
  2. Dock1100

    Dock1100 :-]

    Регистрация:
    9 ноя 2009
    Сообщения:
    678
    Симпатии:
    0
    Код (Text):
    var y,z,x,d:real;
    begin
    writeln('vvedi chisla');
    readln(y);
    readln(z);
    x:=y/z;
    d:=trunc(x); {Получаем дробную часть}
    d:=x-d; {получаем целое число}
    writeln(d);
    end.
     
  3. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    Dock1100 не путай народ в комментах, ты какую задачу решаешь? :rolleyes:
    trunc(x) - отсекает дробную, т.е. получает целое число.
    Есть еще Int Целая часть числа с плавающей точкой
    frac должно быть правильно: Frac Дробная часть числа с плавающей запятой
     
  4. Dock1100

    Dock1100 :-]

    Регистрация:
    9 ноя 2009
    Сообщения:
    678
    Симпатии:
    0
    Извеняюсь
    Код (Text):
    var y,z,x,d:real;
    begin
    writeln('vvedi chisla');
    readln(y);
    readln(z);
    x:=y/z;
    d:=trunc(x); {получаем целое число}
    d:=x-d; {Получаем дробную часть, отнимая от данного целое}
    writeln(d);
    end.
     
  5. adler54

    adler54 Гость

    Спасибо за 1 задачу, очень благодарен, ест мысли по 2 и 3?
     
  6. CoderGirl

    CoderGirl Гость

    icq 625127032
    e-mail: [email protected]
    [email protected]
    Сделаю недорого!
     
  7. adler54

    adler54 Гость

    Спасибо за помощь! Обязательно ещё оброщусь, всё на высшем уровне!
     
Загрузка...

Поделиться этой страницей