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
|
|
|