Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Помогите с задачками (http://www.tehnari.ru/f41/t92570/)

AnSo 25.11.2013 15:28

Помогите с задачками
 
Привет всем , недавно начал заниматься программированием , ну как начал просто поступил на специальность где есть программирование , сначало всё было довольно легко , мне очень нравилось , но потом я вообще перестал понимать что нужно сделать в определённой задаче и как её решить.tehno036 . Программирую в делфи , надеюсь что добрые люди этого форума помогут решить задачки:tehnari_ru_837: , и пожалуйста с комментариями к коду , буду очень благодарен!

Вот собственно и сами задачи: 1.Задача на циклы,нужно сделать в 3 вариантах:1 цикл с предусловием , 2 цикл с постусловием , 3 цикл с параметром. ЗАДАЧА:Пользуясь реккурентной формулой для заданного с клавиатуры m , вычислить Ym , если известны Y0,Y1,Y2, а Yi вычисляется по формуле Yi=tg^2(Yi-3)+Yi-2; i=3,4,5,...,m.

2.Задача на массив .Дан одномерный массив А длинной М . Определить является ли он геометрической прогрессией.

Vladimir_S 25.11.2013 15:38

Цитата:

Сообщение от AnSo (Сообщение 973278)
надеюсь что добрые люди этого форума помогут решить задачки

Могу предложить решение на Паскале, а уж с дельфийскими формами-обвесками разбирайтесь сами. Устроит? Если да, то приведите для отладки точные значения констант Y0, Y1 и Y2 в первой задаче.

Николай_С 25.11.2013 20:03

А в чем проблема? С языком программирования или алгоритмами? Что конкретно не понятно?

Gruvi 26.11.2013 01:15

Цитата:

Сообщение от AnSo (Сообщение 973278)
Привет всем , недавно начал заниматься программированием , ну как начал просто поступил на специальность где есть программирование , сначало всё было довольно легко , мне очень нравилось , но потом я вообще перестал понимать что нужно сделать в определённой задаче и как её решить.tehno036 . Программирую в делфи , надеюсь что добрые люди этого форума помогут решить задачки:tehnari_ru_837: , и пожалуйста с комментариями к коду , буду очень благодарен!

Вот собственно и сами задачи: 1.Задача на циклы,нужно сделать в 3 вариантах:1 цикл с предусловием , 2 цикл с постусловием , 3 цикл с параметром. ЗАДАЧА:Пользуясь реккурентной формулой для заданного с клавиатуры m , вычислить Ym , если известны Y0,Y1,Y2, а Yi вычисляется по формуле Yi=tg^2(Yi-3)+Yi-2; i=3,4,5,...,m.

2.Задача на массив .Дан одномерный массив А длинной М . Определить является ли он геометрической прогрессией.

Еще нужна помощь???

AnSo 26.11.2013 17:57

Проблема по большей части с языком программирования.

AnSo 26.11.2013 18:02

Цитата:

Сообщение от Vladimir_S (Сообщение 973280)
Могу предложить решение на Паскале, а уж с дельфийскими формами-обвесками разбирайтесь сами. Устроит? Если да, то приведите для отладки точные значения констант Y0, Y1 и Y2 в первой задаче.

Устроит и на паскале , в принципе можете любые значения вбивать , без разницы ...

AnSo 26.11.2013 18:02

Цитата:

Сообщение от Gruvi (Сообщение 973536)
Еще нужна помощь???

Да , НУЖНА...

AnSo 26.11.2013 18:04

Цитата:

Сообщение от Николай_С (Сообщение 973379)
А в чем проблема? С языком программирования или алгоритмами? Что конкретно не понятно?

Конкретно непонятно как запрограммировать на языке , с алгоритмами и составлением блок схем всё нормально.

Vladimir_S 26.11.2013 20:18

Цитата:

Сообщение от AnSo (Сообщение 973711)
Устроит и на паскале , в принципе можете любые значения вбивать , без разницы ...

Ну, ежели устроит, то первая задачка это, например, так:
Код:

Const
 Y0=0.3;
 Y1=0.2;
 Y2=0.1;

Function Tg2(x:real):real;
begin
 Tg2:=Sqr(Sin(x)/Cos(x));
end;

Var
 m,i,j:byte;
 Y:Array[1..4] of real;

Begin
 Y[2]:=Y0;
 Y[3]:=Y1;
 Y[4]:=Y2;
 Write('m= ');
 Readln(m);
 for i:=3 to m do
  begin
  for j:=2 to 4 do Y[j-1]:=Y[j];
  Y[4]:=Tg2(Y[1])+Y[2];
  end;
 Writeln('Result: ',Y[4]);
 Y[2]:=Y0;
 Y[3]:=Y1;
 Y[4]:=Y2;
 i:=3;
 While i<=m do
  begin
  for j:=2 to 4 do Y[j-1]:=Y[j];
  Y[4]:=Tg2(Y[1])+Y[2];
  Inc(i);
  end;
 Writeln('Result: ',Y[4]);
 Y[2]:=Y0;
 Y[3]:=Y1;
 Y[4]:=Y2;
 i:=2;
 Repeat
  Inc(i);
  for j:=2 to 4 do Y[j-1]:=Y[j];
  Y[4]:=Tg2(Y[1])+Y[2];
 Until i=m;
 Writeln('Result: ',Y[4]);
 Readln
End.


Vladimir_S 26.11.2013 20:40

А так - вторая:
Код:

Var
 M,i,p,r:byte;
 A:Array[1..255] of Word;
 q:real;
Begin
 Write('M= ');
 Readln(M);
 r:=1;
 for i:=1 to M do
  begin
  Write('A[',i,']= ');
  Readln(A[i]);
  if A[i]=0 then r:=0;
  end;
 If r=1 then
  begin
  q:=A[2]/A[1];
  p:=0;
  i:=3;
  Repeat
    if A[i]/A[i-1]<>q then p:=1;
    Inc(i);
  Until (p=1) or (i=M);
  If p=1 then writeln('No!') else writeln('Yes!');
  end
 else
  writeln('No!');
 Readln
End.

Пояснение: проверяется наличие нулевых членов во вводимом массиве (в геометрической прогрессии их быть не может). Это флажок r.


Часовой пояс GMT +4, время: 22:14.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.