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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.03.2008, 13:20   #1
Aleksandr
Форумчанин
 
Регистрация: 22.05.2007
Сообщений: 511
По умолчанию Получить значение многочлена при данном x

1.
В массиве записей хранится многочлен Pn(x) по убыванию степеней. Каждая запись содержит показатель степени и коэффициент члена. Получить значение многочлена при данном x. Члены с нулевыми коэффициентами в массив не включаются.
2.
Дан текст, заканчивающийся точкой. Вывести первые вхождения каждой латинской буквы
Aleksandr вне форума Ответить с цитированием
Старый 07.03.2008, 13:30   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Вывести первые вхождения каждой латинской буквы
Вхождения??? В разных словах чтоли?

Цитата:
1.
Ну так просуммируй элементы записей просчитав их. Есть идеи как организовывать такой массив?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.03.2008, 13:37   #3
Aleksandr
Форумчанин
 
Регистрация: 22.05.2007
Сообщений: 511
По умолчанию

Никаких идей нет. Я тоже нне пойму смысл слова вхождения.
Aleksandr вне форума Ответить с цитированием
Старый 07.03.2008, 16:10   #4
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

По первой задаче.
1. Создаем тип запись с полями:коэффициент и показатель степени.
2.Создаем массив записей.
3.Пишем функцию для возведения вещественных чисел, как положительных, так и отрицательных в целую положительную степень.
4.Вводим n и х. Последний не может быть равен нулю, поэтому делаем проверку на ноль.
5.В цикле от 1 до n считаем сумму членов ряда.
Делается это так:
Код:
uses crt;
type mnog=record
          p:byte;
          k:real;
          end;
var a:array[1..50]of mnog;
    n,i:integer;
    x,Pn:real;
    label 1;
function Pow(m:real;n:integer):real;
var t:real;
begin
t:=abs(m);
if m<0 then Pow:=(-1)*exp(n*ln(t))
else Pow:=exp(n*ln(t));
end;
begin
clrscr;
Write('n=');readln(n);
1:write('x=');readln(x);
if x=0 then
  begin
    writeln('vvedite x<>0');
    readln;
   goto 1;
 end;
for i:=1 to n do
   begin
   a[i].k:=random(20)+random-10;
   a[i].p:=n-i+1;
   end;
Pn:=0;
for i:=1 to n do
Pn:=Pn+a[i].k*Pow(x,a[i].p);
writeln('Pn=',Pn:5:3);
readln
end.
puporev вне форума Ответить с цитированием
Старый 07.03.2008, 16:54   #5
Cannibal
Форумчанин
 
Регистрация: 17.02.2008
Сообщений: 191
По умолчанию

Вхождения - когда буква первый раз встречается в строке. находится с помощью процедуры Poz(строка,вхождение, № позиции
Код:
For i:='a' to 'z' do begin
poz(srt,i,n);
write (i,' 'p)
end;
с типами надеюсь разберешься
Mathematicians often mix up Christmas and Halloween, because Dec.25=Oct.31.
Cannibal вне форума Ответить с цитированием
Старый 07.03.2008, 17:39   #6
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

По второй задаче добавлю к вышесказанному, что во первых не Poz, a pos, ну и кроме того нужно еще кое-чего добавить.
1.Создаем строку из разных символов, в т.ч. латинские буквы, как маленькие, так и большие, которые могут встречяться в строке по нескольку раз.
2. Создаем переменную типа множество символов (set of char).
3.От начала до конца строки прверяем, есть ли в строке латинские буквы, и если есть, то на каком месте каждая из них первый раз встречается, это делает функция pos('a',s), показывающая, где первый раз встретилась буква а.
4.Как только встречаем латинскую букву первый раз, сразу исключаем ее из множества, чтобы она еще раз не выскочила. Это делает процедура Exclude(m,s[i]), где m множество, а s[i] наша буква.
Выглядит это так:
Код:
uses crt;
var s:string;
    i:integer;
    m:set of char;
begin
clrscr;
write('s: ');readln(s);
m:=['a'..'z','A'..'Z'];
for i:=1 to length(s) do
if s[i] in m then
    begin
      writeln('1-e vhogd ',s[i],'=',pos(s[i],s));
      exclude(m,s[i]);
    end;
readln;
end.
puporev вне форума Ответить с цитированием
Старый 07.03.2008, 18:46   #7
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

Цитата:
Сообщение от puporev Посмотреть сообщение
3.Пишем функцию для возведения вещественных чисел, как положительных, так и отрицательных в целую положительную степень.
Это чересчур сурово.

a[n]*x^n+a[n-1]*x^(n-1)+...+a[0]=a[0]+x*(a[1]+x*(...+x*a[n]))

Идея ясна?
Carbon вне форума Ответить с цитированием
Старый 07.03.2008, 18:54   #8
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Что поделаешь, не математик, как написано, так тупо и выполняем, особенно когда математики отдыхают.
puporev вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
получить значение ID при наведении мышкой badfilin JavaScript, Ajax 9 25.04.2009 19:35
как получить значение переменной smoke888 PHP 3 20.06.2008 02:11
Как получить значение системной переменной в С++ PersonaGrata Общие вопросы C/C++ 2 29.02.2008 22:14
Delphi, рекурсия, как сделать все возможные N-ки чисел (сколько столбцов такая N-ка,в данном случае 3)? domik Помощь студентам 5 26.09.2007 16:43