Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2012, 22:40   #1
ment9ra
Пользователь
 
Регистрация: 23.02.2012
Сообщений: 12
Лампочка Оператор for delphi

Ошибка в формуле или где то уже не знаю где помогите .
Код:
var s:real;
  k,i,n:integer;
  begin
s:=1;
n:=10;
k:=-1;
for i:=1 to n do
s:=s*k*(exp(i*ln(2))+i*i);
k:=k*(-1);
writeln('Ответ=',s:8:3);
readln(i);
readln;
end.

И помогите сделать покороче через if мне учитель сказал через формулу 3х сторон треугольника по 2 точкам не чего не нашёл
Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;
var x,y:integer;
begin
writeln('BBedite x,y');
readln(x,y);
 //y=4 x=3 x=-5 y=-4
 if ((y=4) or (y=3)) and ((x=1) or (x=0)) then
 writeln('Prinadlejit')
 else
 if ((y=2) or (y=1)) and ((x=1) or (x=2) or (x=0)) then
 writeln('Prinadlejit')
 else
 if (y=0) and ((x=0) or (x=1) or (x=2) or (x=3) or (x=-1) or (x=-2))
then
 writeln('Prinadlejit')
 else
 if (y=-1) and ((x=0) or (x=1) or (x=2) or (x=3) or (x=-1) or (x=-2) or
(x=-3)) then
 writeln('Prinadlejit')
 else
 if (y=-2) and ((x=0) or (x=1) or (x=2) or (x=3) or (x=4) or (x=-1) or
(x=-2) or (x=-3) or (x=-4)) then
 writeln('Prinadlejit')
 else
 if (y=-3) and ((x=0) or (x=1) or (x=2) or (x=3) or (x=4) or (x=-5) or
(x=-1) or (x=-2) or (x=-3) or (x=-4)) then
 writeln('Prinadlejit')
 else
 if (y=-4) and (x=4) or (x=5) or (x=0) then
 writeln('Prinadlejit')
 else
 writeln('He Prinadlejit');
 Readln;
 end.
ment9ra вне форума Ответить с цитированием
Старый 02.04.2012, 23:12   #2
KEKSoGEN
 
Регистрация: 02.04.2012
Сообщений: 4
По умолчанию

ща поглядим ) все равно спать не охото
KEKSoGEN вне форума Ответить с цитированием
Старый 02.04.2012, 23:23   #3
GreenWizard
мальчик-помогай =)
Форумчанин
 
Регистрация: 16.09.2010
Сообщений: 522
По умолчанию

пробуй:
Код:
var s:real;
  k,i,n:integer;
  begin
s:=1;
n:=10;
k:=-1;
for i:=1 to n do
begin
  s:=s*k*(exp(i*ln(2))+i*i);
  k:=k*(-1);
end;
writeln('Ответ=',s:8:3);
readln(i);
readln;
end.
с треугольником позже отпишу может (если найду формулы)
--------------------
вот http://chiliec.ru/study/prinadlezhno...ki-pascal.html
там числа свои подставите) а решение весьма красивое! я думал через расстояние до сторон, а там через сумму площадей образованных треугольников

Последний раз редактировалось GreenWizard; 02.04.2012 в 23:27.
GreenWizard вне форума Ответить с цитированием
Старый 02.04.2012, 23:30   #4
KEKSoGEN
 
Регистрация: 02.04.2012
Сообщений: 4
По умолчанию

всё правильно считает)))не успел))
KEKSoGEN вне форума Ответить с цитированием
Старый 02.04.2012, 23:43   #5
ment9ra
Пользователь
 
Регистрация: 23.02.2012
Сообщений: 12
По умолчанию

Большое спасибо , помогите еще додумать
Код:
const zn:string[8]='01234567';
var s:string;
    r:longint;
procedure perevod;
var r:integer;
s:string;
begin
writeln('BBedite 4iclo B cc10');
readln(r);
s:='';
while r>0 do
 begin
  s:=zn[r mod 8+1]+s;
  r:=r div 8;
 end;
writeln('OTBET=',s);
readln
end;
var n:integer;
  begin
perevod
  end.

Последний раз редактировалось ment9ra; 02.04.2012 в 23:47.
ment9ra вне форума Ответить с цитированием
Старый 02.04.2012, 23:51   #6
ment9ra
Пользователь
 
Регистрация: 23.02.2012
Сообщений: 12
По умолчанию

Ваш ответ не отличается от моего , но я знаю что мой ответ не правильный ну или учительница отказывается такой принимать.
ment9ra вне форума Ответить с цитированием
Старый 03.04.2012, 00:25   #7
GreenWizard
мальчик-помогай =)
Форумчанин
 
Регистрация: 16.09.2010
Сообщений: 522
По умолчанию

Код:
const
  OCTAVE: string = '01234567';

function To8_func(N: Integer): string;
begin
  Result := '';
  if N = 0 then
    Result := '0';

  while N > 0 do
    begin
      Result := OCTAVE[(N mod 8) + 1] + Result;
      N := N div 8;
    end;
end;

procedure To8_proc(N: Integer; var R: string);
begin
  R := '';
  if N = 0 then
    R := '0';

  while N > 0 do
    begin
      R := OCTAVE[(N mod 8) + 1] + R;
      N := N div 8;
    end;
end;

var
  Arr: array[1..8] of Integer;
  i: Integer;
  s: string;
begin
  Randomize;
  //
  for i := 1 to 8 do
    Arr[i] := Random(10000);

  //
  Writeln('Через функцию:');
  for i := 1 to 8 do
    Writeln(Arr[i], ' => ', To8_func(Arr[i]));
  //
  Writeln('Через процедуру');
  for i := 1 to 8 do
    begin
      To8_proc(Arr[i], s);
      Writeln(Arr[i], ' => ', s);
    end;

  Readln;
end.
сорри, если что не так, уже сплю... прога переводит верно и, вроде, отвечает требованиям
GreenWizard вне форума Ответить с цитированием
Старый 03.04.2012, 06:31   #8
ment9ra
Пользователь
 
Регистрация: 23.02.2012
Сообщений: 12
По умолчанию

Код:
var s:real;
  k,i,n:integer;
  begin
s:=1;
n:=10;
k:=-1;
for i:=1 to n do
begin
  s:=s*k*(exp(i*ln(2))+i*i);
  k:=k*(-1);
end;
writeln('Ответ=',s:8:3);
readln(i);
readln;
end.
Ваш код идентичен моему но ответ не правелный,учительница сказал большой ответ )доолжен быть короче
ment9ra вне форума Ответить с цитированием
Старый 03.04.2012, 12:03   #9
GreenWizard
мальчик-помогай =)
Форумчанин
 
Регистрация: 16.09.2010
Сообщений: 522
По умолчанию

если вы про самую первую задачу, то вот ваш код:
Код:
var s:real;
  k,i,n:integer;
  begin
s:=1;
n:=10;
k:=-1;
for i:=1 to n do
s:=s*k*(exp(i*ln(2))+i*i); // только эта строка в цикле, k = -1 всегда
k:=k*(-1);
writeln('Ответ=',s:8:3);
readln(i);
readln;
end.
вот мой:
Код:
var s:real;
  k,i,n:integer;
  begin
s:=1;
n:=10;
k:=-1;
for i:=1 to n do
begin
  s:=s*k*(exp(i*ln(2))+i*i);  // в цикле
  k:=k*(-1);                      //  в цикле!
end;
writeln('Ответ=',s:8:3);
readln(i);
readln;
end.
неверный ответ т.к. нужно писать руками, а не ногами! расставляя пробелы нормально т.к. строки "s:=s*k*(exp(i*ln(2))+i*i);" и "s:=s+k*(exp(i*ln(2))+i*i);" не отличить сходу
за такие строки я вовсе сразу бы ставил 2 т.к. они потенциально опасны! вот верная строка:
Код:
s := s ПЛЮС (k * (exp(i * ln(2)) + (i * i)));
у нас же оператор суммы, а не перемножения
GreenWizard вне форума Ответить с цитированием
Старый 03.04.2012, 17:28   #10
ment9ra
Пользователь
 
Регистрация: 23.02.2012
Сообщений: 12
По умолчанию

GreenWizard,Спасибо)!!!
ment9ra вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на оператор IF(Delphi) ment9ra Помощь студентам 18 24.02.2012 18:46
delphi, оператор присваивания polnyi_novichek Помощь студентам 3 08.05.2010 23:04
оператор присваивания в delphi polnyi_novichek Помощь студентам 4 21.02.2010 21:28
Оператор выбора. Delphi 7 Miracle01 Помощь студентам 2 01.05.2009 18:24
Delphi 7. Условный оператор Юрий2009 Помощь студентам 9 29.04.2009 19:36