Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

помогите написать программу

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
Fiona
Гость





СообщениеДобавлено: Сб Ноя 16 2002 12:19    Заголовок сообщения: помогите написать программу Ответить с цитатой

Люди, кто-нибудь! помогите мне написаь программу по информатике, я уже не знаю что делать, программа то простенькая, но я ни фига не фурычу, всё тоскаюсь уже полгода с этой задолжностью:

На языке ПАСКАЛЬ!!!!!

Дан массив А размерности 100х200. Нужно вычислить в пятой строке сумму: S=a(здесь индексы - 51) - ((a(52))*2)/(2x3) + ((a(53))*2)/(4x4) - ((a(54))*2)/(8x5) + ((a(55)*2)/(16x6) - ...

Пожалуйста, УМОЛЯЮ Sad !!!!!
Вернуться к началу
Паладин
Гость





СообщениеДобавлено: Вс Ноя 17 2002 09:44    Заголовок сообщения: Re: помогите написать программу Ответить с цитатой

Суть задачи чё-то не понятна. Поясни конкретней, где здесь индексы (массив двухмерный), где числа и что делать с суммой. Напиши индексы в квадратных скобках.
Вернуться к началу
Паладин
Гость





СообщениеДобавлено: Вс Ноя 17 2002 10:19    Заголовок сообщения: Re: помогите написать программу Ответить с цитатой

Всё, разобрался, переписывай, но я её не прогонял Smile
А вот интересно, кто будет вводить такой массив? Smile

uses crt;
var
a: array[1..100, 1..200] of integer;
n, x, i: integer;
s: real;
begin
clrscr;
for x:=1 to 100 do
for i:=1 to 200 do
raed(a[x,i]);
s:=A[5,1];
n:=2;
for x:=2 to 100 do begin
if x mod 2=0 then s:=s-(a[5,x]*2)/((n)(x+1))
else s:=s+(a[5,x]*2/((n)(x+1));
n:=n*2;
end;
write(s:5:5);
repeat until keypressed;
end.
Вернуться к началу
batja
Гость





СообщениеДобавлено: Пн Ноя 18 2002 15:24    Заголовок сообщения: Re: помогите написать программу Ответить с цитатой

Здесь то почти всё правильно, есть только одна зацепка ведь массив можно сгенерить случайным образом, так как вводить его руками захочет разве что полный идиот.
Тогда прога примет приблизительно такой вид:
uses crt;
var
a: array[1..100, 1..200] of integer;
n, x, i, Mnu: integer;
s: real;
begin
Repeat
clrscr;
Writeln('1. Ввести массив вручную');
Writeln('2. Сгенерировать массив случайным образом');
Writeln('3. Выход');
Write('Ваш выбор -->');
Readln(Mnu);
Case Mnu of
1:
Begin
for x:=1 to 100 do
for i:=1 to 200 do
Begin
Write('Введите елемент массива [',x,',',i,'] = ');
readln(a[x,i]);
end;
End;
2:
Begin
Randomize;
for x:=1 to 100 do
for i:=1 to 200 do
a[x,i] := Random(1000);
End;
3:
Exit;
end;
s := a[5,1];
n := 2;
for x := 2 to 100 do
begin
if x mod 2 = then s := s - (a[5,x]*2)/((n)*(x+1))
else s := s + (a[5,x]*2/((n)*(x+1)));
n := n*2;
End;
writeln('Результат s = ',s:5:5);
writeln('Для продолжени нажмите любую клавишу, для выхода нажмите Esc ');
Until Readkey=#27;
end.

Прогу я проверил но так как не очень то понял суть задачи, то ничего не трогал в формулах s := s - (a[5,x]*2)/((n)*(x+1)) и s := s + (a[5,x]*2/((n)*(x+1))) а там всплывает деление на 0. Так, что формулы
надо пересмотреть и исправить, а за остальое я ручаюсь.
Вернуться к началу
Паладин
Гость





СообщениеДобавлено: Пн Ноя 18 2002 16:44    Заголовок сообщения: Re: помогите написать программу Ответить с цитатой

Ну вообще если вводить случайным образом, то тогда как проверишь, что прога выдаёт правильный результат. Там сказано, что массив дан - значит если информатики захотят проверить, то пусть сами вводятSmile)).

А деления на ноль там быть не может: изначально x=2 и растёт, n=2 и растёт в двойном эквиваленте, при их перемножении ноля тоже получиться тоже не может. К сожалению паскаля у меня сейчас нет, проверить я не могу. Может ты разберёшься в задаче и найдёшь ошибку, мне аж самому интересно стало.
s:=s-(a[5,x]*2)/(n*(x+1))
s:=s+(a[5,x]*2)/(n*(x+1))
Вернуться к началу
Chea
Гость





СообщениеДобавлено: Пн Ноя 18 2002 20:09    Заголовок сообщения: Уточнения Ответить с цитатой

Кажется проблема в том что мы 100 раз n удваиваем и к окончанию работы цикла имеем что то вроде 1.26 E+30 после этого умножая на 100 получаем E+32 а переменная n всего лишь типа int (65535)
Вернуться к началу
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...