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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2010, 15:06   #1
qsccsq
Пользователь
 
Регистрация: 23.12.2010
Сообщений: 11
По умолчанию Проги по методу строковая\симпсона\метод половинного деления

вот проверьте пожалуйста эту прогу долго мучался пока проверял почему
не правельно ищет макс слово может быть я что-то упустил?
Код:
Program name;
uses
  crt;
const
letter :array[1..20] of char=
('b','c','d','f','g','h','j','k','l','m','n','p','q','r',
's','t','v','w','x','z');
letter1 :array[1..24] of char=
('b','c','d','f','g','h','j','k','l','m','n','p','q','r',
's','t','v','w','x','z','a','o','i','e');

var
st:string[50];
i,j,g:byte;
flag_word:boolean;
all_letter,each_letter,max,k:integer;
t,max_letter: real;
Begin
  clrscr;
  writeln('ўўҐ¤ЁвҐ ЇаҐ¤«®¦Ґ*ЁҐ');
  readln(st);
  writeln;

  max:=1;
  k:=0;
  all_letter:=0;
  each_letter:=0;
  max_letter:=0;
  flag_word:=false;
  st:=' '+st;

   For i:=2 to length(st) do
     begin
       if (st[i]<>' ')and (st[i-1]=' ')
         then
         flag_word:=true;
          if flag_word
           then
            begin
              write(st[i]);
              for g:=1 to 24 do
              if st[i]=letter1[g]
              then
              begin
              inc(k);
              end;
                for j:=1 to 20 do
                if st[i]=letter[j]
                then
                 begin
                  inc(all_letter);
                  inc(each_letter);
                end;
             end;
        t:=each_letter/k;
 If (st[i]=' ')and(st[i-1]<>' ')or (i=length(st))
   then
     begin
      flag_word:=false;
      writeln(' sogl',each_letter,' vsego bukv =' ,k,' dola sogl=',t:3:3);
        if max_letter<t
          then
          begin
            max_letter:=t;
            inc(max);
          end;
        each_letter:=0;
        k:=0;
      end;
   end;

writeln;
max:=max-1;
writeln('vsego sogl,all_letter');
writeln('maks dola sogl v slove nomer = ',max);
readkey;
end.

2ая прога суть задания : методом симпсона приближённо вычислить интеграл . интервал задан [0,1]; в 19 строчке For m:=1 to n-2 do
неверен кажеться
Код:
program name;
uses
  crt;
var
a,b,r,r2,eps :real;
n :integer;
function f(x:real):real;
  begin
    f:=x*exp(x)*sin(x);
  end;
function Simpson(a,b:real; n:integer):real;
var
  s,h:real;
  m,mn:integer;
 begin
  h:=(b-a)/(n);
  s:=f(a)+f(b);
  mn:=4;
 for m:=1 to n-2  do
  begin
  s:=s+mn*f(a+h*m);
  if (mn=4)
  then
  mn:=2
  else
  mn:=4;
  end;
  Simpson:=s*h/3;
 end;
Begin
{clrscr;}
writeln ('vvedite granicii a b');
Readln (a,b);
writeln('vvedite pogreshnost');
readln(eps);
n:=2;
r:=simpson(a,b,n);
repeat
 r2:=r;
 n:=n*2;
 r:=simpson(a,b,n);
until (abs(r-r2)<eps);
 Writeln;
 Writeln ('resultat po simpsony',r:6:6);
 writeln ('kol-vo razbienii* ',n,' ®в१Є®ў');
 readkey;
 end.
3 прога.
всё вроде бы правильно написал но пишет что данные не подходят
правильно ли написана? о_О
Код:
program pr7;
var a,b,x,x1,e,d,fa,fb,fx:real;
    n:integer;

function FunX(x1:real):real;
begin
     fx:=sqr(x1)*x1-6*sqr(x1)+9*x1+4;
end;

begin
     write('vvedite tocnost opredelenia korna:');
     readln (e);
     repeat
           write('Vvedite granic promegytka a,b:');
           readln (a,b);
           fa:=FunX(a);
           FunX(b);
           fb:=fx;
           If (fa*fb)>0 then writeln('Dannie ne podxodat dla metoda!')
     until(fa*fb)<0;
     n:=0;
     repeat
           x:=(a+b)*0.5;
           FunX (x);
           If (fa*fx)>0 then a:=x
           else b:=x;
           d:=abs((b-a)/x);
           n:=n+1;
     until d<=e;
     writeln('Otvet: x=',x:9:4);
     writeln('f(x)=',fx:7:4);
     writeln('Kollichestvo operacii:',n);
end.
qsccsq вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Метод половинного деления Hichcog Помощь студентам 0 13.12.2010 17:33
метод половинного деления(бисекции) Раймир Паскаль, Turbo Pascal, PascalABC.NET 3 01.05.2010 17:22
Безумно сложные задачки!!!! Метод Гаусса, итераций, метод половинного деления, задача Коши и т.д. Хомяк!!!!! Помощь студентам 4 08.07.2009 10:08
Нужна помощь по методу половинного деления Nepstor Паскаль, Turbo Pascal, PascalABC.NET 0 27.01.2009 00:33