Форум
» Назад на решение задач по физике и термеху
Регистрация | Профиль | Войти | Забытый пароль | Присутствующие | Справка | Поиск

» Добро пожаловать, Гость: Войти | Регистрация
    Форум
    Информационные технологии
        Решение задач на Pascal. Форум 2
Отметить все сообщения как прочитанные   [ Помощь ]
» Добро пожаловать на форум "Информационные технологии" «

Переход к теме
<< Назад Вперед >>
Несколько страниц [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 ]
Модераторы: paradise, KMA
  

Defenishion



Новичок

Дано натуральное число n. Получить f[0]f[1]...f[n], где

f= 1 / ( [ i ]^2+1)+ 1/( [ i ]^2+2)+……+1/( [ i ]^2+[ i ]+1)    


Всего сообщений: 6 | Присоединился: октябрь 2009 | Отправлено: 5 окт. 2009 20:02 | IP
Kurvochka



Новичок


Цитата: Dale написал 4 окт. 2009 8:27

Цитата: Kurvochka написал 3 окт. 2009 14:18
Люди привет! если кто-то читает это сообщения то помогите плиз!! Нужно составить анимацию в паскале движение планеты Земля вокруг Солнца. Нужно срочно!!это курсовая работа.



Ну для начала, вот основа:
Code Sample:
 
uses crt,graph;
const r_z=10;{paduyc  3emJIu}
     r_s=100;{paduyc coJIHU,a}
     rasst=200;{paccto9IHue oT 3em do C.}

var driver,mode:integer;
   x_z,y_z:integer;
   yrol:real;
procedure write_zem(x,y:integer);
begin
circle(x,y,r_z);
end;

begin
driver:=detect;
initgraph(driver,mode,'');
x_z:=0;y_z:=0;yrol:=0;
while not keypressed do begin
   cleardevice;
   circle(640 div 2,480 div 2, r_s);

   x_z:=round(cos(yrol)*rasst)+640 div 2;
   y_z:=round(sin(yrol)*rasst)+480 div 2;
   write_zem(x_z,y_z);
   yrol:=yrol+pi/100;
   delay(5000);

end;

end.




А вы можете возле каждой строки программы написать что она означает?и еще как залить солнце и землю? напишите пожалуйста! в самой программе делать больше ничего не нада. всьо отлично.

Всего сообщений: 7 | Присоединился: октябрь 2009 | Отправлено: 7 окт. 2009 14:02 | IP
Adrammelech



Новичок


Цитата: Defenishion написал 5 окт. 2009 20:02
Дано натуральное число n. Получить f[0]f[1]...f[n], где

f= 1 / ( [ i ]^2+1)+ 1/( [ i ]^2+2)+……+1/( [ i ]^2+[ i ]+1)    




Что такое i, и как оно изменяется, от 0 или от1?
f[ 0 ]f[ 1 ]...f[ n ] между членами умножение?

Всего сообщений: 21 | Присоединился: сентябрь 2009 | Отправлено: 7 окт. 2009 19:09 | IP
Defenishion



Новичок

да не знаю)если б понимал уже ю написал(
отпишите кто знает плз

Всего сообщений: 6 | Присоединился: октябрь 2009 | Отправлено: 7 окт. 2009 19:58 | IP
Alsebra



Новичок

Даны вещественные числа a,b,c и  m.  Если  a<b<c>m,  то
каждое число заменить наибольшим из них.
Я правельно делаю,если не правельно то как надо?
____________________________________________________
var a,b,c,m;
if a<b then
begin
writeln('a<b');
c:=a+b
end;
else;
begin
writeln('a<b<c');
m:=a+b+c
end;
____________________________________________________



(Сообщение отредактировал Alsebra 8 окт. 2009 19:13)

Всего сообщений: 3 | Присоединился: сентябрь 2009 | Отправлено: 8 окт. 2009 12:02 | IP
Dale



Участник

Kurvochka  
uses crt,graph; {Подключаем модли crt(для работы keypressed и delay ) и модуль graph для работы с графикой}


{Объявляем константы в пикселах}
const r_z=10;{paduyc  3emJIu}
     r_s=100;{paduyc coJIHU,a}
     rasst=200;{paccto9IHue oT 3em do C.}

var driver,mode:integer; {Для инициализации граф. режима}
   x_z,y_z:integer; {текущие координаты Земли}
   yrol:real; {Текущий угол, на который отклонена земля, в радианах}


{Процедура, рисующая Землю в заднных координатах x , y}
procedure write_zem(x,y:integer);
begin
circle(x,y,r_z); {рисуем окружность в точке x,y радиуса r_z}
end;

begin
{Инициализируем графический режим}
driver:=detect;
initgraph(driver,mode,'');

{Начальные значения}
x_z:=0;y_z:=0;yrol:=0;


{Пока не будет нажата клавиша}
while not keypressed do begin

cleardevice; {Очищаем экран}

circle(640 div 2,480 div 2, r_s); {рисуем в центре экрана солнце
div - это целочисленное деление}

{Вычисляем координаты Земли}
{round - округление}
{Параметрическое уравнение окружности см. http://ru.wikipedia.org/wiki/%D0%9E%D0%BA%D1%80%D1%83%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D1%8C

внешняя ссылка удалена }

x_z:=round(cos(yrol)*rasst)+640 div 2;
y_z:=round(sin(yrol)*rasst)+480 div 2;

{Выводим землю в текущих координатах}
write_zem(x_z,y_z);
{Увеличиваем угол на pi/100 радиан}
yrol:=yrol+pi/100;
{Делаем паузу в программе}
delay(5000);


end;{Конец цикла}
end.{конец программы}



2)см. SetFillStyle , Setcolor

(Сообщение отредактировал Dale 9 окт. 2009 10:16)

Всего сообщений: 139 | Присоединился: май 2009 | Отправлено: 9 окт. 2009 10:10 | IP
MaJlbBuHa



Новичок

Всем доброго время суток. Проверьте пожалуйста у меня следующие задачи:
1) Сформировать массив случайными числами из промежутка [5*a-11,3*b^2],a и b считываются с клавиатуры

Мое решение:
uses crt;
var c:array[1..10] of integer;
i,a,b,h,o:integer;
begin
clrscr;
randomize;
writeln('vvedite a , b');
readln(a,b);
o:=5*a-11;
h:=3*sqr(b);
For i:=1 to 10 do begin
a:=random(h)+o;
write(a:3);
end;
writeln;
readln;
end.

2) дан массив. к каждому второму элементу прибавить первый элемент массива.

мое решение:
uses crt;
var a:array[1..10] of integer;
i:integer;
begin
clrscr;
randomize;
writeln('vvedite k');
readln(k);
for i:=1 to k do begin
a:=random(50);
if i mod 2 =0 then a:=a+a[1];
write(a:3);
end;
readln;
end.

3) заполнить массив 15 первыми натуральными числами, делящимися на 4 и на 11, большими 10

мое решение:
uses crt;
var a:array[1..15] of longint;
i:integer;
begin
clrscr;
for i:=1 to 15 do begin
a[1]:=11*4;
a[2]:=a[1]*11;
a[3]:=a[2]*11;
a[4]:=a[3]*11;
a[5]:=a[4]*11;
a[6]:=a[5]*11;
a[7]:=a[6]*11;
a[8]:=a[7]*11;
a[9]:=a[8]*11;
a[10]:=a[9]*11;
a[11]:=a[10]*11;
a[12]:=a[11]*11;
a[13]:=a[12]*11;
a[14]:=a[13]*11;
a[15]:=a[14]*11;
writeln(a:3);
end;
readln;
end.

но это не рационально, как лучше решить.

Помогите пожалуйста ,заранее спасибо

Всего сообщений: 48 | Присоединился: январь 2009 | Отправлено: 9 окт. 2009 18:24 | IP
Defenishion



Новичок

помоему там надо писать процедуру что б не вписывать в программку по 100 раз одно и тоже

Всего сообщений: 6 | Присоединился: октябрь 2009 | Отправлено: 9 окт. 2009 18:28 | IP
Dale



Участник


Цитата: MaJlbBuHa написал 9 окт. 2009 18:24
Всем доброго время суток. Проверьте пожалуйста у меня следующие задачи:
1) Сформировать массив случайными числами из промежутка [5*a-11,3*b^2],a и b считываются с клавиатуры

Мое решение:
uses crt;
var c:array[1..10] of integer;
i,a,b,h,o:integer;
begin
clrscr;
randomize;
writeln('vvedite a , b');
readln(a,b);
o:=5*a-11;
h:=3*sqr(b);
For i:=1 to 10 do begin
a[ i ]:=random(h)+o;
write(a[ i ]:3);
end;
writeln;
readln;
end.


a[ i ]:=random(h-1)+o;

Цитата: MaJlbBuHa написал 9 окт. 2009 18:24

2) дан массив. к каждому второму элементу прибавить первый элемент массива.

мое решение:
uses crt;
var a:array[1..10] of integer;
i:integer;
begin
clrscr;
randomize;
writeln('vvedite k');
readln(k);
for i:=1 to k do begin
a[ i ]:=random(50);
if i mod 2 =0 then a[ i ]:=a[ i ]+a[1];
write(a[ i ]:3);
end;
readln;
end.



Вроде все правильно


Цитата: MaJlbBuHa написал 9 окт. 2009 18:24

3) заполнить массив 15 первыми натуральными числами, делящимися на 4 и на 11, большими 10

мое решение:
uses crt;
var a:array[1..15] of longint;
i:integer;
begin
clrscr;
for i:=1 to 15 do begin
a[1]:=11*4;
a[2]:=a[1]*11;
a[3]:=a[2]*11;
a[4]:=a[3]*11;
a[5]:=a[4]*11;
a[6]:=a[5]*11;
a[7]:=a[6]*11;
a[8]:=a[7]*11;
a[9]:=a[8]*11;
a[10]:=a[9]*11;
a[11]:=a[10]*11;
a[12]:=a[11]*11;
a[13]:=a[12]*11;
a[14]:=a[13]*11;
a[15]:=a[14]*11;
writeln(a[ i ]:3);
end;
readln;
end.

но это не рационально, как лучше решить.

Помогите пожалуйста ,заранее спасибо




Тогда уж

a[1]:=11*4;
for i:=2 to 15 do begin
a[ i ]:=a[i-1]*11;
writeln(a[ i ]:3);
end;


Хотя я бы сделал так:
i:=1;
c:=11*4;
while i<=15 do begin
  if(c mod 4=0) and (c mod 11=0) then begin
     a[ i ]:=c;
     i:=i+1;
  end;
c:=c+1;
end;


И самое главное: Читайте правила перед тем, как писать что-то на форум! Если у вас i в квадратных скобках, то ставьте пробелы до и после i!


(Сообщение отредактировал Dale 10 окт. 2009 9:04)

Всего сообщений: 139 | Присоединился: май 2009 | Отправлено: 10 окт. 2009 9:01 | IP
Dale



Участник


Цитата: Alsebra написал 8 окт. 2009 12:02
Даны вещественные числа a,b,c и  m.  Если  a<b<c>m,  то
каждое число заменить наибольшим из них.
Я правельно делаю,если не правельно то как надо?
____________________________________________________
var a,b,c,m;
if a<b then
begin
writeln('a<b');
c:=a+b
end;
else;
begin
writeln('a<b<c');
m:=a+b+c
end;
____________________________________________________



(Сообщение отредактировал Alsebra 8 окт. 2009 19:13)




Что то явно не то:
-Не указан тип переменных
-Зачем c присваивать a+b? И m -  a+b+c? Надо заменить наибольшим, а не суммой.
-После else ";"  будет означать пустой оператор, и как правило не ставится; между end и else она не ставится никогда.


Я бы сделал так:
Code Sample:
 
var a,b,c,m,max:real;
   mas:array[1..4] of real;
begin
writeln('Введите a,b,c,m');
readln(a,b,c,m);

if (a<b) and (b<c) and  (c>m) then begin
mas[1]:=a;mas[2]:=b;mas[3]:=c;mas[4]:=m;
{ищем максимум в массиве}
max:=mas[1];
for i:=2 to 4 do if max<mas[ i ] then max:=mas[ i ];
{Заменяем}
a:=max;b:=max;c:=max;d:=max;
writeln('Все числа были заменены на максимальное и них - ',max:5:5);
end else writeln('Числа не попадают в условие a<b<c>m');
readln;
end.



Если условие a<b<c>m выполняется, то заиписываем a,b,c,m в массив, нходим максимальный элемент и заменяем числа на него, затем выводим сообщение. Иначе выводим, что числа не попдают в условие  a<b<c>m.



(Сообщение отредактировал Dale 10 окт. 2009 9:53)

Всего сообщений: 139 | Присоединился: май 2009 | Отправлено: 10 окт. 2009 9:36 | IP

Эта тема закрыта, новые ответы не принимаются

Переход к теме
<< Назад Вперед >>
Несколько страниц [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 ]

Форум работает на скрипте © Ikonboard.com