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

» Добро пожаловать, Гость: Войти | Регистрация
    Форум
    Информационные технологии
        Решение задач на 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
  

xjmx


Новичок

Помоги люди добрые!!!
вот задачи :
Case1 : Даны два целых числа: D(день) и M(месяц),определяющюю првильную дату.
Вывести знак Зодиака, соответствующий этой дате:"Водолей(20,1-18,2) "Рыбы"(19,2-20,3) "Овен"(21,3-19,4) "Телец" (20,4 - 20,5) "Близнецы" (21,5 -21,6) "Рак"(22,6-22,7 ) "Лев" (23,7-22,8) "Дева"(23,8-22,9) "весы" (23,9-22,10) "Скорпион"(23,10,-22,11) "стрелец"(23,11-21,12) "козерог"(22,12,-19,1).

CAse2 : В восточном календаре принят 60-летний цикл, состоящий из 12-летних подциклов, обозначаемых названиями цвета: зелёный, красный, желтый, белый и чёрный.В каждом подцикле годы носят назввание животных : крысы, коровы , тигра ,зайца ,дракона, змеи, лошади ,овцы, обезьяны, курицы, собаки,и свиньи. По номеру года определить его название, если 1984 год - начало цикла :"Год зелёной крысы "
былоб у меня время попытался бы сам а так помгите с решением задачи завтра у меня последний срок сдачи курсовой потом экзамен так что буду очень благодарен

Всего сообщений: 1 | Присоединился: июнь 2009 | Отправлено: 2 июня 2009 19:35 | IP
Metal



Новичок

Я всетаки решила эту задачу.Если кому-то будет нужно и не сможете решить ,то вот:
program zadanie2;

const n=10;
     m=10;
     mas: array [0..15] of char = ('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
     
function F(a:integer):string;
var s:string;
   c:integer;
begin
 s:='';
 Repeat
   c:=a mod 16;
   s:=mas[c]+s;
   a:=a div 16;
 Until a=0;
 F:=s;
end;
       
var i,j:integer;

begin
writeln('Tablica umnojeniya:');    
write('    ');
for j:=1 to m do
 write(F(j):4);
writeln;  
for i:=1 to n do
begin
 write(F(i):4);
 for j:=1 to m do
   write(F(i*j):4);
 writeln;  
end;

writeln('Tablica slojeniya:');    
write('    ');
for j:=1 to m do
 write(F(j):4);
writeln;  
for i:=1 to n do
begin
 write(F(i):4);
 for j:=1 to m do
   write(F(i+j):4);
 writeln;  
end;
end.


(Сообщение отредактировал Metal 2 июня 2009 21:34)

Всего сообщений: 2 | Присоединился: май 2009 | Отправлено: 2 июня 2009 21:32 | IP
azale4ka



Новичок

Приветик!!! Помогите пожалуйста решить задачу.Вообще не понимаю как их решить.
Вычислите количсетво ненулевых элементов массива С (40) и их порядковые номера.
Заранее большое спасибо.

(Сообщение отредактировал azale4ka 3 июня 2009 15:32)


(Сообщение отредактировал azale4ka 3 июня 2009 15:51)

Всего сообщений: 4 | Присоединился: июнь 2009 | Отправлено: 3 июня 2009 14:31 | IP
azale4ka



Новичок

Добрые люди помогите решить несколько задач.
1.задача: Упорядочить одномерный массив Х (70) по не убыванию.
2.задача: Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали. Отпечатать полученную матрицу в общепринятом виде.
3.задача: Составить программу подсчета числа всех натуральных чисел, меньше М, квадрат суммы цифр которых равен Х.

Всего сообщений: 4 | Присоединился: июнь 2009 | Отправлено: 3 июня 2009 14:38 | IP
LoRdyS



Новичок

И так у меня проблемка в Pascal`е я секу с огромным трудом, у меня задание по практике надо написать 11 програм остлось написать 5 штук, но как ето зделать я не представляю просто напросто не могу свои мысли реализовать в програмном коде, помогите пожалуйсто, заранее примного благодарен!
Вот задания:
1.Задана последовательность целых чисел. Написать  программу печатающую число с наибольшей суммой цифр, делящейся на 3 без остатка.
2.Дано натуральное число  N, натуральные числа a[0],…a[N] такие, что каждое   a[1] равно 0 или 1 и a[N]< > 0.Последовательность  a[0],…, a[N] задает двоичное представление некоторого целого числа  P=a[N]*2^N  +  a[N-1]*2^(N-1)  +…+a[1]*2  + a[0]. Получить   последовательность нулей и единиц, задающую двоичное представление:
а ) числа Р+1; б) числа Р-1; в) числа 3*Р:
3.Дано целое  N, целочисленные векторы  {X[1]}  1=1,2,…,N, {Y[J]}  J=1,2,…,N. Числа  X[1] и  Y[1] является координатами точек. Построить на экране точки, заданные последовательностью  X [1], Y[1]; X[2], Y[2];…X[N], Y[N]. Точки строить поочередно, построение каждой последующей должно сопровождаться удалением предыдущей. Процесс построения выполнить дважды, первый раз от точки 1 до точки  N, второй  от  N  до 1.
4.Дан символьный массив   {s[1]}  1=1,2,…,N, образованный из слов, разделенных пробелами. Упорядочить слова массива по алфавиту.  
5.Дан символьный массив, содержащий одно или несколько слов, разделенных пробелами. Расставить слова в массиве так, чтобы они размещались по убыванию их длины. Если несколько слов имеют одинаковую длину, то брать их так же по  убыванию.

Очень прошу помочь...

Всего сообщений: 1 | Присоединился: июнь 2009 | Отправлено: 4 июня 2009 11:37 | IP
kuzya88



Новичок

Помогите, пожалуйста!!!Что-то не выходит в программе!!!Где ошибка???

Program SPYSK;
  uses
     crt;
  type tochka = record
     x,y:double;
  end;
  var
     i,j,kol_func:integer;
  function f(p:tochka):double;
     begin
        f:=3*p.x*p.x+p.y*p.y+exp(p.x*p.x+p.y*p.y)-2*p.x+p.y;
        inc(kol_func);
     end;
  function dfx(p:tochka):double;
     begin
        dfx:=(f(p.x,p.y[j])-f(p.x[i-1],y[j]))/(p.x-p.x[i-1]);
     end;
  function dfy(p:tochka):double;
     begin
        dfy:=(f(y[j])-f(y[j-1]))/(y[j]-y[j-1]);
     end;
  procedure Diff(P:tochka; var df:tochka);
     begin
        df.x:=dfx(P);
        df.y:=dfy(P);
     end;
  function Norma(p:tochka):double;
     begin
        Norma:=sqrt(sqr(p.x)+sqr(p.y));
     end;
  procedure Local(p1,v:tochka; var p2:tochka);
     var
        H:double; f1,f2:double;
     begin
        H:=1;
        f1:=f(p1);
        p2.x:=p1.x+H*v.x;
        p2.y:=p1.y+H*v.y;
        f2:=f(p2);
        while (f2<f1) do begin
           H:=H*2;
           p2.x:=p1.x+H*v.x;
           p2.y:=p1.y+H*v.y;
           f1:=f2;
           f2:=f(p2);
        end;
     end;
  function Dist(p1,p2:tochka):double;
     begin
        Dist:=sqrt(sqr(p1.x-p2.x)+sqr(p1.y-p2.y));
     end;
  procedure DiffNorma(P:tochka; var df:tochka);
     begin
        Diff(p,df);
        df.x:=df.x/Norma(df);
        df.y:=df.y/Norma(df);
     end;
  procedure Dihotom(p1,p2:tochka; var min:tochka; eps:double);
     var
        a,b,v,df:tochka; da,db,d:double;
     begin
        v.x:=p2.x-p1.x;
        v.y:=p2.y-p1.y;
        v.x:=v.x/Norma(v);
        v.y:=v.y/Norma(v);
        DiffNorma(p1,df);
        da:=df.x*v.x+df.y*v.y;
        DiffNorma(p2,df);
        db:=df.x*v.x+df.y*v.y;
        a:=p1;
        b:=p2;
     repeat
        min.x:=(a.x+b.x)/2;
        min.y:=(a.y+b.y)/2;
        DiffNorma(min,df);
        d:=v.x*df.x+v.y*df.y;
        min.x:=(a.x+b.x)/2;
        min.y:=(a.y+b.y)/2;
        Diff(min,df);
        d:=df.x*v.x+df.y*v.y;
        if d*da<0 then begin
           db:=d;
           b:=min;
        end
        else begin
           da:=d;
           a:=min;
     end;
     until d<eps;
     end;
     var
        M,df,p1,p,t:tochka;
        eps:double;
        kol_shag:integer;
        b:boolean;
     begin
     clrscr;
        p.x:=1;
        p.y:=1;
        eps:=1e-4;
        kol_shag:=0;
        kol_func:=0;
        b:=True;
        Diff(P,df);
        while Norma(df)>eps do begin
           df.x:=-df.x/Norma(df);
           df.y:=-df.y/Norma(df);
           Local(P, df, p1);
           Dihotom(p, p1, M, eps/10);
           p:=m;
           Diff(p,df);
           inc(kol_shag);
        end;
     writeln('                       ***********************');
     writeln('                             Metod spysky     ');
     writeln('                       ***********************');
     writeln('');
     writeln('Znachenie x = ',p.x:4:8);
     writeln('Znachenie y = ',p.y:4:8);
     writeln('Znachenie f(x) = ',f(p):4:8);
     writeln('Kolichestvo shagov = ',kol_shag);
     writeln('Kolichestvo vuzova = ',kol_func);
     ReadLn;
end.


Всего сообщений: 1 | Присоединился: июнь 2009 | Отправлено: 4 июня 2009 20:28 | IP
Nyta



Новичок

Всем привет!У меня запара!Учусь в Пед университете и нас там замотали программированием!!!Сказали,чтобы получить зачет нужно решить 6 задач!!Четыре вроде сделала,а вот остальные не получаются!Помогите пожалуйста!!
1)В первый день Незнайка написал одну единицу.Во-второй приписал к ней две двойки.В-третий приписал три тройки и т.д.,всего n дней. Вывести на экран запись незнайки в несколько строк по m цифр в одной строке,за исключеием последней.
2)Заданы два массива.Проверить все ли элементы первого массива превосходят соответсвующие элементы ворого массива.
Помогите!!



(Сообщение отредактировал Nyta 6 июня 2009 13:04)

Всего сообщений: 5 | Присоединился: июнь 2009 | Отправлено: 6 июня 2009 12:24 | IP
Dale



Участник

Nyta  
1)Я бы сделал так:
c:=0;
foк i:=1 to  do n do begin
 for j:=1 to i do begin
  c:=c+1;
  write(i);
  if (c mod m)=0 then writeln;
 end;
end;
end;

2)Можно использовать флажок:
var f:boolean;{флажок}
.......
f:=false;
for i:=1 to n do
  if x[i ]<y[i ] then f:=true;
if f then writeln('не все') else writeln('все');
....



(Сообщение отредактировал Dale 10 июня 2009 0:47)

-----
Прикольная песня :-)

Всего сообщений: 139 | Присоединился: май 2009 | Отправлено: 8 июня 2009 0:47 | IP
Dale



Участник

kuzya88  
Я думаю, вряд ли кто-нибудь будет сидеть и разбираться в вашем коде. Если хотите получить ответ, напишите пожалуйста условие задачи и коротко расскажите, как вы ее решали, но самое главное, укажите, что за ошибка и в каком месте?

Всего сообщений: 139 | Присоединился: май 2009 | Отправлено: 8 июня 2009 0:50 | IP
Dale



Участник

LoRdyS  
В кратце:
1) Подсчет суммы цифр в числе a делается так:
sum:=0;
b:=a;
while b>0 do
begin
 sum:=sum+b mod 10;
 b:=b div 10;
end;


Xисло a делится без остатка на три, если:
a mod 3 =0

4,5)Загуглите "сортировка массива пузырьком"
По задачам 2 и 3 очень хочется услышать ваши мысли.

Всего сообщений: 139 | Присоединился: май 2009 | Отправлено: 8 июня 2009 1:15 | 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