Часовой пояс: UTC + 3 часа




Куратор(ы):   Lord_of_Darkness   



Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 985 • Страница 22 из 50<  1 ... 19  20  21  22  23  24  25 ... 50  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 
Прилепленное (важное) сообщение

Убедительная просьба ко всем, кто выкладывает исходники:
1. Обязательно пользуйтесь тэгом code (иначе очень трудно читать)
2. Старайтесь делать отступы

Если вы хотите чтобы вам помогли в написании программы, внятно излагайте задание!

Прежде чем задать вопрос, воспользуйтесь учебником


Возможно, что нужная вам программа уже написана, поэтому советую просмотреть список здесь и здесь

Отредактировано куратором: Lord_of_Darkness. Дата: 07.07.2006 19:36



Партнер
 

Lord_of_Darkness сори там в у словии есть еще оговорка.

Цитата:
Одна дискета соит 11р 50к. Коробка содердит 12 дискет и стоит 114р. 50 к. Ящик содержит 12 коробок и стоит 1255р. Надо купить N дискет заплатив за это меньшую стоимость.


Известно что если надо купить 11 дискет выгоднее купить 1 корубку чем 11 дискет.

Т.е. задача при n = 11 и 10 решается не верно.


 

Member
Статус: Не в сети
Регистрация: 24.12.2005
Lord_of_Darkness Блин, вот косяк... Как это работало, не пойму... Вот, поправил:
Код:
Function Divide(Y, X : String) : String;
  var
    digit, z, num, i    : Integer;
    X1, result          : String;
  begin
    If More(X, Y) then begin
                         Divide := '0';
                         Exit;
                       end;
    X1 := X;
    While not More(X1, Y) do X1 := X1 + '0';
    Delete(X1, Length(X1), 1);
    If Length(X1) = Length(Y) then num := Length(Y) - Length(X) + 1
                              else num := Length(Y) - Length(X);
    result := '';
    For z := 1 to num do begin
      X1 := X;
      For i := 1 to num-z do X1 := X1 + '0';
      digit := 0;
      While not More(X1, Y) do begin
        Y := Sub(Y, X1);
        Inc(digit);
      end;
      result := result + ChrDigit(digit);
    end;
    Divide := result;
  end;

ЗЫ. Числа "нормальные", а не "перевёрнутые". Это я с другим попутал.


 

Lord_of_Darkness

Спасибо огромное! А я весь инет облазил, не смог найти как AND использовать нормально :lol:


 

Куратор темы
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
Luga тогда так

Код:
uses crt;
const
  BoxFDDCnt = 12;
  CaseFDDCnt = 12;
  FDDCost = 11.5;
  FDDBoxCost = 114.5;
  FDDCaseCost = 1255.0;

var
  N, m, FDD, BoxFDD, CaseFDD: integer;

begin
  clrscr;
  write('Floppy count N = ');
  readln(N);
  CaseFDD := N div (CaseFDDCnt*BoxFDDCnt);
  BoxFDD := (N - CaseFDD*CaseFDDCnt*BoxFDDCnt) div BoxFDDCnt;
  FDD := N - CaseFDD*CaseFDDCnt*BoxFDDCnt - BoxFDD*BoxFDDCnt;
  if FDD*FDDCost>=FDDBoxCost then
  begin
    FDD:=0;
    BoxFDD:=BoxFDD+1;
  end;
  if BoxFDD*FDDBoxCost>=FDDCaseCost then
  begin
    BoxFDD:=0;
    CaseFDD:=CaseFDD+1;
  end;
  writeln(CaseFDD,' FDD Cases, ',BoxFDD,' FDD Boxes, and ',FDD,' FDD''s');
  write('Cost = ',CaseFDD*FDDCaseCost+BoxFDD*FDDBoxCost+FDD*FDDCost:10:2,'RUR');
  readln;
end.


DarkEdem писал(а):
А я весь инет облазил, не смог найти как AND использовать нормально

зачем лазить неивестно где, если в прилепленном посте наверху есть ссылка на учебник по паскалю?
Добавлено спустя 1 минуту, 34 секунды
и index в BP тоже не просто так существует.

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Если можно помогите с:

Пусть есть некоторое натуральное число. Найти сумму квадратов чисел это числа, получив новое число, а с этим новым числом проделать аналогичную процедуру. После конечного числа повторений этой процедуры получается либо число 1 либо число 4. На промежутке [1...N] найти числа и их колво, которое по завершению вышеописанной процедуры дают результат 1. (N<=30000)


Последний раз редактировалось Luga 22.10.2006 2:14, всего редактировалось 1 раз.

 

Member
Статус: Не в сети
Регистрация: 30.01.2006
Откуда: Минск
Вроде так получается.
Код:
var n,s,i,j,t:integer;
begin
write('Enter n=');
readln(n);
s:=0;
for i:=1 to n do
begin
  j:=i;
  while (j<>1) and (j<>4) do
  begin
    t:=j;
    j:=0;
    while t>0 do
    begin
      j:=j+sqr(t mod 10);
      t:=t div 10;
    end;
  end;
  if j=1 then
  begin
    writeln(i);
    inc(s);
  end;
end;
writeln(s);
readln;
end.


 

Куратор темы
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
ну и я выложу, раз уж написал
Код:
uses crt;

function DecompNum(num: integer): integer;
var
  sum: longint;
  tnum: longint;
begin
  if num=0 then
    DecompNum:=0
  else
  begin
    tnum:=abs(num);
    repeat
      sum:=0;
      repeat
         sum:=sum+sqr(tnum mod 10);
         tnum:=tnum div 10;
      until tnum=0;
      tnum:=sum;
    until (sum=1) or (sum=4);
    DecompNum:=sum;
  end;
end;

var
  i, N: integer;
begin
  clrscr;

  write('N = ');
  readln(N);
  writeln('Results:');
  for i:=1 to N do
   if DecompNum(i)=1 then
     write(i,'; ');
  readln;
end.

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Lord_of_Darkness Alex12 спасибо огромное :)


 

Member
Статус: Не в сети
Регистрация: 24.07.2006
-----


Последний раз редактировалось E1dar 12.03.2010 3:09, всего редактировалось 1 раз.

 

Куратор темы
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
E1dar

№1

Код:
uses crt;
var
  x, t: real;
  zero: boolean;
  i, mlt: integer;
begin
  clrscr;
  x:=4.222;
  mlt:=10;
  zero:=false;
  for i:=1 to 3 do
  begin
    t:=trunc(x*mlt) mod 10;
    mlt:=mlt*10;
    if t=0 then zero:=true;
  end;

  if zero then write('Zero was found')
  else write('Zero not found');

  readln;
end.


№2

Код:
uses crt;
const
  n = 3;
var
  BrickParam: array [1..3] of real; {a, b, c}
  x, y: real;
  i, j: integer;
  compatible: boolean;
begin
  clrscr;
  compatible:=false;

  BrickParam[1]:=2;
  BrickParam[2]:=3;
  BrickParam[3]:=4;
  x:=4;
  y:=2.1;

  for i:=1 to n-1 do
    for j:=i+1 to n do
      if ((BrickParam[i]<=x) and (BrickParam[j]<=y) or
          (BrickParam[i]<=y) and (BrickParam[j]<=x))
        then compatible:=true;

  if compatible then write('Brick is compatible with hole')
  else write('Brick is not compatible with hole');

  readln;
end.


№4

Код:
uses crt;

function f(a:real):real;
var
  arg: real;
begin
    arg:=a - round(a/2)*2;
    f:=-sqr(arg)+1;
end;

var
  x: real;
begin
  clrscr;
  x:=-4.0;
  write('f(',x:5:2,') = ',f(x):5:2);
  readln;
end.


3-е вообще не понимаю чего надо и что к чему относится, короче мрак какой-то. Объясни подробнее.

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


Последний раз редактировалось Lord_of_Darkness 24.10.2006 14:18, всего редактировалось 4 раз(а).

 

Member
Статус: Не в сети
Регистрация: 24.07.2006
-----


Последний раз редактировалось E1dar 12.03.2010 3:09, всего редактировалось 1 раз.

 

Куратор темы
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
E1dar что-то странное это задание очень. Да и чисел там не 180, а 90 получается.

Чисто по описанию выходит так:

Код:
uses crt;
var
  k, i, x: integer;
begin
  clrscr;
  write('k = ');
  readln(k);
  if (k mod 2) = 0 then
     x:=trunc((0.9+0.1*(k div 2))*10) mod 10
  else x:=trunc(0.9+0.1*(k div 2));
  write('number is ',x);
  readln;
end.


но смысл такого задания для меня загадка...

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Member
Статус: Не в сети
Регистрация: 24.07.2006
-----


Последний раз редактировалось E1dar 12.03.2010 3:09, всего редактировалось 1 раз.

 

Member
Статус: Не в сети
Регистрация: 08.12.2005
Откуда: Питер!
А это снова Я :) Помогите сделать проги, проставлюсь.. :beer: :) :
1) #77 >> #77


2) #77 >>> #77

Уф... мегаблагодарен заранее :)


Последний раз редактировалось MW! 23.10.2006 21:49, всего редактировалось 1 раз.

 

Куратор темы
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
E1dar не надо мне объяснять, я и так прекрасно понимаю сколько чисел и сколько позиций. Я не понимаю смысла этого задания. Оно похоже на самодурство особо "умного" препода.

E1dar писал(а):
А можешь объяснить с функцией (№4)? не понял что там вообще делается

#77
на интервале -1..1 она задана некой формулой, раз период у нее 2, значит дальше она повторяется. Нужно просто привести заданный аргумент к интервалу -1..1 и посчитать значение функции. Берем остаток от деления аргумента на 2 (отбрасываем полные периоды), потом двигаем на -1 или на 1 в зависимости от знака аргумента. Понятно?
PS я эту поправил, она была немного некорректной. Теперь все нормально работает.
Добавлено спустя 8 минут, 16 секунд
MW! с первыми двумя картинками какой-то косяк. они не грузятся.

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


Последний раз редактировалось Lord_of_Darkness 24.10.2006 14:20, всего редактировалось 1 раз.

 

Member
Статус: Не в сети
Регистрация: 30.01.2006
Откуда: Минск
MW!
1
Код:
{$N+}
var x,y,y2,eps:extended;
num:integer;
begin
write('Enter x=');
readln(x);
write('Enter error eps=');
readln(eps);
y:=x/2;
repeat
  y2:=y;
  y:=0.5*(x+y*y);
until abs(y-y2)<eps;
num:=0;
while eps<1 do
begin
  inc(num);
  eps:=eps*10;
end;
writeln('Limit:',y:num+2:num);
readln
end.

Насчет второго- точно такое условие? Если да, то эта сумма равна m*sin((1/x)^n), смысл её в цикле как сумму считать? По идее, там как-то должно быть
задействовало j.


 

Member
Статус: Не в сети
Регистрация: 08.12.2005
Откуда: Питер!
Alex12
ага, условие именно такое..
спасибо за прогу! ;)


 

Куратор темы
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
MW!
№2

Код:
uses crt;
var
  x, A, B, dx, sum, max : real;
  i, j, n, m: integer;
begin
  clrscr;
  write('A = ');
  readln(A);
  write('B = ');
  readln(B);
  write('n = ');
  readln(n);
  write('m = ');
  readln(m);
  dx:=abs((A-B)/9);
  x:=A;
  for i:=1 to 10 do
  begin
    sum:=1;
    for j:=1 to n do
     sum:=sum*1/x;
    sum:=m*sin(sum);
    if i=1 then max:=sum
    else if sum>max then max:=sum;
    writeln('sum[',i,'] = ',sum:5:2);
    x:=x+dx;
  end;
  writeln('max = ',max:5:2);
  readln;
end.


Alex12 там ведь еще максимум найти нужно, так что вложенных циклов не избежать.

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Member
Статус: Не в сети
Регистрация: 16.07.2006
Дан текст. Если слово чётной длины - вставить в его середину "-".
Я написал программу, немного попотрошив преподавателя...:). Но чего-то должным образом не работает:(...
Всё пересмотрел, уже вешаться собрался...:)
Код:
Program PR6;
             USES CRT;
             Const S1='-';
             Var S:string; D,i,K,n,R:integer; c:char;
Begin clrscr;
                 Read(S);
                    For i:=1 to Length(S) do
                           If (S[i]=' ') and (S[i+1]<>' ') then
                                 Begin
                                         K:=i; n:=0;
                                 While
                                 (S[n]=' ') and (S[n+1]<>' ') do
                                        If Length(S) mod 2=0 then
                                              Begin
                                                      D:=Length(S);
                                                      R:=D div 2;
                                                      insert(S1,S,R)
                                              End;
                                  n:=n-1;
                                  End
                     Else read(S);
                     Writeln(S);
               C:READKEY;
End.

Я вообще не пойму, зачем здесь нужен "K", но препод сказал "надо".
Знающие люди, скажите, у меня незначительная ошибка, или ошибка "в ДНК", Все перебивать прейдётся?
Спасибо.


 

Куратор темы
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
-=DIN=-

зачем такие бешеные отступы? делай поменьше.
Вобщем накрутил ты там здорово, ошибок логических куча, объяснять не буду. Должно быть так:

Код:
Program PR6;
USES CRT;
Const
  S1='-';
Var
  S:string;
  D,i,K,n,R:integer; c:char;
Begin
  clrscr;
  {Read(S);}
  S:='slovo1 and slovo2   a slovo3';

  n:=1;
  K:=0;
  while (i<=Length(S)) do
  begin
    If ((S[i]=' ') and (S[i+1]<>' ')) or (i=Length(S)) then
    Begin
      if (i-1) > n then
      begin
        if i=Length(S) then inc(i);
        if ((i-n) mod 2) = 0 then
        begin
           insert(S1,S,n+((i-n) div 2));
           inc(K);
        end;
      end;

      n:=i+1;
    End;
    inc(i);
  end;
  Writeln(S);
  READKEY;
End.

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


Последний раз редактировалось Lord_of_Darkness 29.10.2006 13:06, всего редактировалось 1 раз.

Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 985 • Страница 22 из 50<  1 ... 19  20  21  22  23  24  25 ... 50  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan