Новые сообщения · Правила  
  • Страница 1 из 1
  • 1
Модератор форума: Berestovskiy  
Форум ПРОГРАММИСТОВ » ПРОГРАММИРОВАНИЕ » Паскаль » Помогите написать программу (На ТР 7.0)
Помогите написать программу
Даны натуральные числа n,b0,...,bn.Вычислить f(bo)+(b1)+...(bn),где f(x)=x в квадрате,если x кратно 3;f(x)=x,если x при делении на 3 дает остаток 1;
f(x)=x/3-в остальных случаях.

Заранее спасибо! smile

1 | Автор: zloygeniy | 2009-03-21, 20:48   |  Репутация: [ + 0 ]
кагбе так
Code
program Pe4enka;
USES CRT;
var
    s:real;
    n,a,i:integer;
begin
      clrscr;
      S:=0;
      write('Enter N: ');
      readln(n);
      writeln('Enter elements');
      for i:=1 to n do
      begin
           read(A);
           case (a mod 3) of
                0: S:=S+a*a;
                1: S:=S+a;
                else S:=S+a/3;
           end;
      end;
      write('S=',S:5:5);
      readkey;
end.


Насколько проще была бы жизнь если бы она была в исходниках
2 | Автор: LofD | 2009-03-21, 21:51   |  Репутация: [ + 14 ]
Ммммм....тут какбэ цикл и разветвление...
uses crt;
const nmax=50;{максимальный размер массивов}
type Tnatur=1..maxint;{тип натуральные числа}
var n,i:byte;
b:array[0..nmax] of Tnatur;{исходный массив}
f:array[0..nmax] of real;{результирующий массив}
begin
clrscr;
randomize;{генерация псевдослучайных чисел}
repeat
write('n=');{вводим размер массива с проверкой правильного ввода}
readln(n);
until (n>0)and(n<=nmax);
writeln('Ishodnyj massiv:');
for i:=0 to n do
begin
b[i]:=random(20)+1;{псевдослучайные числа в инт. 1-20}
write(b[i],' ');
end;
writeln;
writeln;
writeln('Rezultat:');
for i:=0 to n do
begin
if b[i] mod 3=0 then f[i]:=sqr(b[i]){если кратно 3}
else if b[i] mod 3=1 then f[i]:=b[i]{если в остатке 1}
else f[i]:=b[i]/3;{если в остатке 2}
write(f[i]:7:2);{выводим в форматированном виде, 7 позиций под число, 2 знака после запятой}
end;
readln
end.

Но как то криво...
Мб ещё варианты будут???
p.s LofD всё-равно сенкс))

3 | Автор: zloygeniy | 2009-03-21, 23:58   |  Репутация: [ + 0 ]
Quote (zloygeniy)
.Вычислить f(bo)+(b1)+...(bn)

Результат число, а не массив. Ну если те так больше нравится =))


Насколько проще была бы жизнь если бы она была в исходниках
4 | Автор: LofD | 2009-03-22, 00:06   |  Репутация: [ + 14 ]
а какие еще варианты? чем вариант LofD не нравиццо? там заполнение, проверка и подсчёт суммі на одной итерации, а у zloygeniy сначало заполнение рандомными числами, и вторым циклом проверка и подчсчет. при чем ето все двумя разными массивами. плюм ко всему - результатом по условию должно быть число - сумма всех значений функций.
первый вариант пердпочтительные и более соответсвует условию задачи


If you can't make it GOOD make it LOOK GOOD. B.Gates
5 | Автор: DoVe | 2009-03-22, 21:35   |  Репутация: [ + 48 ]


If you can't make it GOOD make it LOOK GOOD. B.Gates
5 | Автор: DoVe | 2009-03-22, 21:35   |  Репутация: [ + 48 ]
Помогите мне написать програму пожалусто, ссылачка на задание

http://depositfiles.com/files/c1eyh6zii

Добавлено (17.06.2009, 11:28)
---------------------------------------------
ответ в аську пожалусто,497989335

6 | Автор: FreeLive | 2009-06-17, 11:28   |  Репутация: [ + 0 ]
Добрый день. Помогите написать программу для заполнения заявления!!!!

Mesech
7 | Автор: Mesech | 2014-05-06, 12:27   |  Репутация: [ + 0 ]
Здравствуйте! Нужна помощь по SPI, не могу реализовать передачу хотя бы одного бита хоть ты тресни:( Работаю в AtmelStudio 6.1, МК Atmega328p 2шт....
8 | Автор: Mersedesik4 | 2014-05-13, 06:04   |  Репутация: [ + 0 ]
Форум ПРОГРАММИСТОВ » ПРОГРАММИРОВАНИЕ » Паскаль » Помогите написать программу (На ТР 7.0)
  • Страница 1 из 1
  • 1
Поиск: