03.10.2009, 21:49 | #31 (permalink) |
Экономичный вид памяти
Регистрация: 19.02.2008
Сообщений: 2,632
Записей в дневнике: 1
Сказал(а) спасибо: 6
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 2794
|
нужно было написать прогу с использованим цикла For Q= 1+ x/1! + x**2/2!+...+ x**N/N!, N>0 вводится с клавиатуры. Это для проверки проги (x=5, N=10, s=146.38) Эх не могу найти свой исходник.Вобшем Как пропишется (Q= 1+ x/1! + x**2/2!+...+ x**N/N!) непосредсвенно в паскаль коде(с экспанетами и фактариалами(fakt)) и что ещё обозначает ... (три точки в функции) |
03.10.2009, 22:41 | #32 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Как писал А.С.Пушкин - "Чего ж вам боле?" Насчет цикла - а это, по-Вашему, что? FOR i:=1 TO N DO Y:=Y+X2np(x,i)/Nfact(i); По-моему цикл и есть! Три точки обозначают то же, что, если, допустим, я хочу перечислить все целые числа от 1 до 10, то могу это записать сокращенно: 1, 2, ..., 10. Так же и здесь. Между прочим, эта функция - не что иное, как разложение в ряд экспоненты Exp(x) = 1 + x/1! + x²/2! + x³/3! + ... + xª/a! (здесь N заменено на a) |
|
04.10.2009, 01:04 | #33 (permalink) |
Banned
Регистрация: 01.09.2009
Сообщений: 4,396
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 2544
|
В принципе, и вычисление степеней, и вычисление факториалов можно поместить в один цикл с вычислением суммы.
А вот вычислять степени N c помощью экспоненты и замены основания, для того чтобы вычислить в итоге экспоненту мне кажется нелогичным. |
05.10.2009, 09:49 | #34 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Сейчас мысленно вернулся к задачке и понял, что в данном случае действительно можно короче и проще:
VAR N,i:INTEGER; x,y,add:EXTENDED; BEGIN Write('x= '); ReadLn(x); Write('N= '); ReadLn(N); Y:=1; Add:=1; FOR i:=1 TO N DO BEGIN Add:=Add*x/i; Y:=Y+Add; END; WriteLn('Y= ',Y); ReadLn; END. Но предыдущий вариант более "универсален". |
15.10.2009, 00:51 | #35 (permalink) |
Member
Регистрация: 29.09.2009
Сообщений: 32
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
помогие плиз с задачкой про курс корабля)
С клав. вводится текущий курс корабля (север, юг, запад, восток), Затем поступает команда (направо, налево, прямо, назад) Надо чтобы в итоге он выавал курс корабля после команды..я так понимаю тут будет много Case и перечисляемяе типы..но. что-то я не знаю что в кейсе писать( |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
15.10.2009, 11:35 | #36 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Код:
CONST Course:ARRAY[1..4] of STRING=('Nord', 'Zued', 'West', 'Ost'); VAR Course_bef,Course_aft,Command:BYTE; BEGIN WriteLn('Enter the initial course number:'); WriteLn(' 1 - Nord'); WriteLn(' 2 - Zued'); WriteLn(' 3 - West'); WriteLn(' 4 - Ost'); ReadLn(Course_bef); REPEAT WriteLn('Enter the command number:'); WriteLn(' 1 - Right'); WriteLn(' 2 - Left'); WriteLn(' 3 - Forward'); WriteLn(' 4 - Back'); WriteLn(' 5 - Stop'); ReadLn(Command); IF Command<>5 THEN BEGIN Case Course_bef of 1 {Nord}: Case Command of 1: Course_aft:=4 {Ost}; 2: Course_aft:=3 {West}; 3: Course_aft:=1 {Nord}; 4: Course_aft:=2 {Zued}; END; 2 {Zued}: Case Command of 1: Course_aft:=3 {West}; 2: Course_aft:=4 {Ost}; 3: Course_aft:=2 {Zued}; 4: Course_aft:=1 {Nord}; END; 3 {West}: Case Command of 1: Course_aft:=1 {Nord}; 2: Course_aft:=2 {Zued}; 3: Course_aft:=3 {West}; 4: Course_aft:=4 {Ost}; END; 4 {Ost}: Case Command of 1: Course_aft:=2 {Zued}; 2: Course_aft:=1 {Nord}; 3: Course_aft:=4 {Ost}; 4: Course_aft:=3 {West}; END; END; Writeln('Course: ',Course[Course_aft]); Writeln; Course_bef:=Course_aft; END; UNTIL Command=5 {Stop}; END. Последний раз редактировалось Vladimir_S; 15.10.2009 в 11:41 Причина: Одна косметическая поправка |
|
15.10.2009, 20:34 | #37 (permalink) |
Member
Регистрация: 29.09.2009
Сообщений: 32
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
ничего подобного) я кстати сделал ее с кейсом и еще одним вложенным кейсом и перечисляемыми типами, все работает) задачка была принята) Позже если будет интересно могу выложить решение.
|
20.10.2009, 21:49 | #39 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
Считывайте числа в целочисленный массив до тех пор, пока не встретите 0, при этом счетчик размерности массива увеличивайте на 1 с каждым заполненным ненулевым элементом. Затем заводите цикл, в котором анализируйте остаток от деления переменной счетчика на 3. Переменную суммы увеличивайте на значение элемента массива всякий раз, когда остаток от деления будет равен 0. Затем выводите получившуюся сумму.
__________________
Убить всех человеков! |
20.10.2009, 22:49 | #40 (permalink) |
Member
Регистрация: 29.09.2009
Сообщений: 32
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|