Прямоугольная плоскость задана координатами (x1,y1) - левая верх. точка и (x2,y2) - правая нижняя. По границе ползет "удав" со скоростью V. Внутри области движется точка с скорость v1. Она начинает свое движение вниз от границы области на заданном расстоянии S от левого верхнего угла под углом A к нижней линии области. Точка движется, отражаясь от стенок, до тех пор пока не столкнется с "удавом". Обьекты начинают движение одновременно. При стократном столкновении программа завершает работу, оповещая пользователя. Реализовать: Pascal
лень грузить студию - получи на пасе Code: Begin readln(R); x:=0; N:=0; (*Суммируем в первой четверти - в конце домножаем на 4 :-) *) while x<R do begin y:=0; while y<=R do begin if (sqr(R) = (sqr(x) + sqr(y))) then N:=N+1; y:=y+1; end; x:=x+1; end; N:=N*4; writeln(N); end. конечно это банальная отиска - можно еще дописать ограничения области перебора- чтобы не снуляперебирать, а начиная с некоторой точки, отстоящей от нуля. НО будет пахать и так.
нужна лаба на С: Сортировка с помощью включения используя метод деления пополам, Пирамидальная сортировка. по возрастанию. Необходимо написать программу, которая должна: 1. Создавать не менее 3х массивов так, чтобы их длины соотносились как N, N+a, N+2a. (Например, 1000, 3000 и 5000). Чем больше массивов вы будете рассматривать – тем лучше. 2. Каждый из массивов необходимо заполнить произвольными (случайными) значениями. При заполнении массивов необходимо придерживаться одной тактики, поскольку способ заполнение может иметь определенное значение. Например, можно заполнить массив из 1000 элементов случайными числами от 1 до 5 или же от 1 до 10000 – скорее всего производительность алгоритмов сортировки будет отличаться. 3. Сохранить исходные массивы в файле или файлах (в текстовом виде). 4. Для каждого из исходных массивов, а также отсортированного в прямом порядке и отсортированного в обратном порядке, каждым из предложенных методов выполнить сортировку. Необходимо вычислить число сравнений, число перемещений и время работы каждого алгоритма, в каждом случае. 5. Результаты выполнения п.4. должны выводиться на экран или сохраняться в файле в таблице (таблицах): Число сравнений / число перемещений / время N Способ №1 Способ №2 Исходный массив Отсортированный массив Обратно отсортированный Исходный массив Отсортированный массив Обратно отсортированный N N+a N+2a N+3a 6. Результаты сортировки исходных массивов сохранить в файле (файлах), в текстовом виде. 7. Необходимо представить результаты в виде графика (графиков) 8. Необходимо быть готовым обосновать полученные результаты 9. Любые эксперименты, усовершенствования и творческий подход будут приветствоваться! 10. Необходимо ориентироваться в исходном коде программы и быть готовым ответить на дополнительные вопросы. 11. Необходимо подготовить и представить отчет о работе. В отчете должны быть представлены краткие описания используемых алгоритмов, должно быть приведено краткое описание работы программы и анализ полученных результатов. очсрочно!те до 23:00 26.10.2007г сроки неожиданно продлились до 3.11. помогите плз
Проблемка с Visual Basic 6.0 Значить такой код на кнопочке. Code: Private Sub Cmd1_Click() Dim i, j As Integer Dim N, M As Integer Dim Coun(), Film(), Mucs() As String N = InputBox("Ââåäèòå êîëè÷åñòâî ñòðàí") M = InputBox("?") ReDim Coun(1 To N, 1 To M), Film(1 To N, 1 To M), Mucs(1 To N, 1 To M) For i = 0 To N - 1 For j = 0 To M * 2 If j = 0 Then Coun(i, j) = InputBox("Coun" & i) [COLOR=Red]List1[/COLOR](i).List(j) = Coun(i, j) ElseIf (i / 2) - Fix(i / 2) = 0 Then Film(i, j) = InputBox("Film" & i) List2(i).List(j) = Film(i, j) Else Mucs(i, j) = InputBox("Mucs" & i) List3(i).List(j) = Mucs(i, j) End If Next j Next i End Sub и выдает ошибку на List1 в чем проблема?
Разграничегие доступа Всех приветствую. Вопрос вот в чем: задали в универе лабу: написать программу под Win для добавления учетных записей в системе и назначения им (группам) прав. Как такое реализовывется? Где об этом почитать? Если можно, пример.. p.s. по возможности написать руткит для работы программы не с админскими правами.
Многоразрядные числа представлены в виде одномерного массива. Необходимо: - реализовать операцию возведения многозначного числа в степень; - реализовать операцию умножения многозначного числа на многозначное число; Неоходимо реализовать на Pascal'e. Заранее спасибо)
http://www.kursovik.com/programming/109011.html Расчет количества дней между датами Программа расчитывает количество дней между двумя датами, заданных тремя чслами - год, месяц, день. Расчет ведется по всем правилам, с учетом високосных годов. нужен сабж на паскале (Pascal)
helat Code: program data; uses crt; label escape,asd,dsa,contin; var m1:array[1..12] of integer; m2:array[1..12] of integer; a:array[1..3] of longint; b:array[1..3] of longint; err:boolean; cd:char; i:byte; razn,d1,d2,mo1,mo2,y1,y2:longint; begin clrscr; writeln('Input first date'); writeln('Day'); read(a[1]); writeln('Month'); read(a[2]); writeln('Year'); read(a[3]); writeln('Input second date'); writeln('Day'); read(b[1]); writeln('Month'); read(b[2]); writeln('Year'); read(b[3]); for i:=1 to 12 do begin if (i=1) or (i=3) or (i=5) or (i=7) or (i=8) or (i=10) or (i=12) then begin m1[i]:=31; m2[i]:=31; end else begin m1[i]:=30; m2[i]:=30; end; end; if a[3]/4=int(a[3]/4) then m1[2]:=29 else m1[2]:=28; if b[3]/4=int(b[3]/4) then m2[2]:=29 else m2[2]:=28; clrscr; if (a[1]<=0) or (b[1]<=0) or (a[2]<=0) or (b[2]<=0) or (a[3]<=0) or (b[3]<=0) then err:=true; if (a[2]>12) or (b[2]>12) then err:=true; if a[1]>m1[a[2]] then err:=true; if b[1]>m2[b[2]] then err:=true; if err=true then begin writeln('Error! Please check your data.'); goto escape; end; if a[3]>b[3] then dsa: begin d1:=a[1]; mo1:=a[2]; y1:=a[3]; d2:=b[1]; mo2:=b[2]; y2:=b[3]; goto contin; end; if b[3]>a[3] then asd: begin d1:=b[1]; d2:=a[1]; mo1:=b[2]; mo2:=a[2]; y1:=b[3]; y2:=a[3]; goto contin; end; if b[3]=a[3] then begin if a[2]>b[2] then goto dsa; if b[2]>a[2] then goto asd; if b[2]=a[2] then begin if a[1]>b[1] then goto dsa; if a[1]<b[1] then goto asd; end; end; contin: razn:=0; repeat if y2/4=int(y2/4) then m1[2]:=29 else m1[2]:=28; razn:=razn+1; if (d2<=m1[mo2]) and (mo2<=12) then d2:=d2+1; if (d2>m1[mo2]) and (mo2<12) then begin mo2:=mo2+1; d2:=1; end; if (d2>m1[mo2]) and (mo2=12) then begin y2:=y2+1; d2:=1; mo2:=1; end; until (d1=d2) and (mo1=mo2) and (y1=y2); escape: writeln('Difference'); writeln(razn); writeln('days'); cd:=readkey; end. не самая удачная реализация, но считает прально. =\
когда то сам искал, нужно было помочь человеку с задачкой, вот через Юлианский день Code: Program Jules; { All of the explanation needed is the source. "May this routine make all your code run faster" - Programmer's Prayer } Type Str3 = string[3]; {for a month name} str9 = string[9]; Var Date1,Date2 : string[12]; {the dates to compare} Number_of_days : integer; {Number of days between the two dates} Function Number_of_Month (Month : str3) : integer; {Returns the sequential number of the month; Jan=1 & Dec = 12} Var Temp : integer; Dates : string[36]; Begin {Notice how I scan the string. Less code than a case!} Dates := 'JanFebMarAprMayJunJulAugSepOctNovDec'; Number_of_Month := round((pos(Month,Dates)-1)/3) +1; End; function Since_Beginning (month,day,year : integer) : integer; var DayCount : integer; {Holds the number of days} Temp : integer; {Just a temporary holding integer} Num_Leaps : integer; {Holds the number of leap years} Begin Num_Leaps := 0; DayCount := 0; Writeln; Writeln('Scanning ',month,'/',day,'/',year,' ...'); for Temp := 1 to year do {Gets the number of leap years} If (temp mod 4) = 0 then Num_Leaps := Num_Leaps + 1; Writeln('Found ',num_leaps,' leap years occuring'); DayCount := (year * 365) + Num_Leaps; {calcs year & leap year} Writeln('Making ',abs(daycount),' days in ',year,' YEARS'); DayCount := DayCount + Day; {adds in days} Writeln('Plus ',day,' days makes ',abs(daycount), ' days in YEAR + DAY'); For Temp := 1 to Month-1 do { Couldn't help but put a large case here. The number is the number of days in that month. Feb is 28 because the leap year counter takes the leap year into effect } Begin Case Temp of 1 : DayCount := DayCount + 31; {jan} 2 : DayCount := DayCount + 28; {feb} 3 : DayCount := DayCount + 31; {mar} 4 : DayCount := DayCount + 30; {apr} 5 : DayCount := DayCount + 31; {may} 6 : DayCount := DayCount + 30; {jun} 7 : DayCount := DayCount + 31; {jul} 8 : DayCount := DayCount + 31; {aug} 9 : DayCount := DayCount + 30; {sep} 10 : DayCount := DayCount + 31; {oct} 11 : DayCount := DayCount + 30; {nov} 12 : DayCount := DayCount + 31; {dec} end; {case of temp} end; {for loop} Since_Beginning := DayCount; Writeln('Plus ',month,' months makes ',abs(daycount), ' days since 00/00/00'); end; {function SINCE_BEGINNING} Function Days_Elapsed (date1,date2 : str9) : integer; Var Month1,Day1,Year1, Month2,Day2,Year2 : integer; {sets of dates} Temp1,Temp2 : integer; {for the VAL function} Begin Month1 := Number_of_Month(Copy(date1,4,3)); {gets the month number} Month2 := Number_of_Month(Copy(date2,4,3)); {gets the month number} Val(copy(date1,1,2),Day1,Temp2); {get everything into numerics} Val(copy(date2,1,2),Day2,Temp2); { " " " " } Val(copy(date1,8,2),year1,temp2); { " " " " } Val(copy(date2,8,2),year2,temp2); { " " " " } Val(copy(date1,8,2),year1,temp2); { " " " " } Val(copy(date2,8,2),year2,temp2); { " " " " } Days_Elapsed := Since_Beginning(month2,day2,year2) - Since_Beginning(month1,day1,year1); {The difference of the two numbers} end; Begin {Main} Date1 := '27 Jan 64'; {My birthday} Date2 := '20 Nov 85'; {When I last edited this program} ClrScr; {If you want originality, call an author...} Writeln('JULES - Finds the number of days between two dates ', 'using a JULIAN manner.'); Writeln('Author - David Strickler'); Writeln('Address - FIDO 101/45 [Midnight DEC]'); Writeln; Writeln('This program shows a pretty good way to find the number'); Writeln('of days between two dates. It is reasonably fast and'); Writeln('has a mininum of source code to it. Please use it as'); Writeln('you wish. The only right I claim, is that is it officialy'); Writeln('in the Public Domain.'); Writeln; {Call the main function. Very neat & clean. Two in, one out} Number_of_Days := Days_Elapsed(date1,date2); Writeln('Number of days between ',date1,' and ',date2,' is ', Number_of_days); End. http://pascal.sources.ru/datetime/jules.htm Плюс ко всему прочему большой набор исходников для работы с Date на Pascal http://pascal.sources.ru/datetime/index.htm
Заставка оператор создайте заставку : ****************** * Программа * * вычесления чисел * * Автор: * * * * * ****************** На Паскале создайте пожалуйсто, если такое ваще реально создать. Буду очень благодарен И еще : Вывести сумму числа введенного с клавиатуры с числом 10
)))) тоесть заставку? всмысле под винду - и там типа в спящем режиме выводит вреальном времени? Или просто перед выполнением программы вывсти на экран)))
Code: var s:string; a:integer; begin writeln('Vvedi 4islo'); readln(s); a:=strtoint(s)+10; writeln('rezultat '+inttostr(a)+' ...'); Writeln('Press Enter to continue'); Readln; end. И вот по поводу заставки! P.S.Не бойся гугля он не кусается!
2 helat Вот тоже решил написать свой вариан. Когда тестил, использовал ссылку которую ты привел. Также проверил програмку от G1yuK (от Dumkopff запустить неудалось). Вывод такой - програмка приведенная по ссылке и предложеная G1yuK ошибается на единицу если второй (большей) датой ставим високосный год. Тестил на таких примерах: 1984.01.01 Первая дата 1984.02.29 Вторая дата Результат = 59 Если ставим 1984.01.01 Первая дата 1984.03.01 Вторая дата Результат = 59 (Тоже !!!!) Хотя 1984 год есть високосный и разница между 1 января и 1 марта - 60 дней. Если взять даты: 1984.01.01 Первая дата 1984.12.31 Вторая дата Результат = 364 (неверно, должно быть 365!!!) Если ставим 1984.01.01 Первая дата 1985.01.01 Вторая дата Результат = 366 (Правильно, НО КУДА ДЕЛСЯ 365 день?) Еще ты жаловался на "мудреный" код от Dumkopff. Привожу свою реализацию. Алгоритм и код очень простой, и у меня нету этой ошибки в високосным годом. Прошу потестить может и я где ошибся Да и еще программа простая но есть минусы: не проверяет правильность введеной даты, не проверяет соответсвие дней месяцу т.е. можно написать 2000.02.35. Но при корректном вводе считает правильно (я надеюсь). Code: uses crt; type mymas=array[1..12] of integer; const d1:mymas=(0,31,59,90,120,151,181,212,243,273,304,334); {Dlya NE vicokosnogo} d2:mymas=(0,31,60,91,121,152,182,213,244,274,305,335); {Dlya vicokosnogo} var data:string[10]; d:mymas; god,mes,den,kol_v:integer; kol_dney:array[1..3] of longint; er,i:integer;{for error and cikl :)} begin clrscr; for i:=1 to 2 do begin readln(data); {GGGG.MM.DD} Val(Copy(data,1,4),god,er); Val(Copy(data,6,2),mes,er); Val(Copy(data,9,2),den,er); {Proverka na "visokosnost"} if ((god mod 4)=0) and (((god mod 100)<>0)or((god mod 400)=0)) then d:= d2 {Dlya vicokosnogo} else d:= d1;{Dlya NE vicokosnogo} kol_v:=((god-1) div 4)-((god-1) div 100)+((god-1) div 400); kol_dney[i]:=god*365+kol_v+d[mes]+den; end; kol_dney[3]:=kol_dney[2]-kol_dney[1]; writeln(kol_dney[3],' Days'); write('HAI+IMUTE ''Enter'' DLYA BUXODA'); readln; end.
Арифметическое выражение - Pascal Помогите пжалста) Строка символов представляет собой арифметическое выражение, состоящее из чисел, знаков арифметических операций(*, / , + , - ) и открывающихся и закрывающихся круглых скобок.Проверить его корректность Реализация Pascal. При этом соблюдается следующее: 1) Первым и последним символами должны быть числа или закрывающаяся скобка. 2) Перед и после арифметической операции должны быть числа или откр. скобка 3) Если скобка открывается, то она обязательно должна закрыться, кол-во скобок не ограничено. 4) Первой арифм. операцией должна выполнятся в скобках, затем умножение, деление, сумма, разность. Слегка нудновато...но все же
Люди помогите плис с 3мя задачами на паскале 1) дан 3х мерный массив Q(mxnxq) длинного типа. Умножить каждую строку страницы на столбец U(q) целого типа и посчитать в полученной матрице кол-во положительных, отрицательных и нулевыхэлементов 2) в символьной строке заменить все гласные буквы на "_" , рассчитать кол-во цифр, русских, английских букв, а также остальных символов. 3) список строк содержит наименования учебных дисциплин. Отфильтровать все недопустимые символыи сформировать список, содержащий только предметы, наименования которых начинаютса с согласной буквы. В сформированном списке рассчитать число слов и букв в каждом наименовании
Задание. 1. Определить структурный тип, содержащий следующие поля: - символьный массив, используемый для хранения строки, например, с именем студента, - указатель на тип char – для организации динамического массива, хранящего строку, например, с фамилией студента. Остальные поля выбрать по варианту, приведенному в таблице 2. Использовать одну из переменных для хранения некоторого идентификатора (номера); указатель на несимвольный тип – для организации динамического массива целых или плавающих чисел; другую переменную – для хранения размера этого массива; Дополнить структурный тип любыми полями по своему выбору. 1. Переменная типа double; 2. Указатель на тип double; 3. Переменная символьного типа. 2. Определить функции: • инициализации структуры; • заполнения массива чисел; • вывода на экран массива чисел; • ввода информации в строки имени и фамилии и другие поля; • вывода на экран всех полей структуры, кроме массива чисел; • функцию освобождения динамической памяти. У половины функций, по выбору студента, одним из аргументов должен быть указатель на структуру, у второй половины – ссылка на структуру. 3. Определить функцию main(), в которой создать: • объект ранее определенного структурного типа • указатель на этот структурный тип. С помощью указателя создать динамический массив объектов структурного типа из 3-х – 4-х элементов. Для объекта последовательно вызывать функции инициализации, заполнения массива чисел, ввода данных в остальные поля, показа массива, показа полей. Для каждого элемента массива структур выполнить в цикле (for) функции инициализации, заполнения массива и ввода данных. Вывести на экран содержимое полей каждого элемента массива структур в цикле (for) с помощью соответствующих функций. В конце функции main() вызвать функцию освобождения памяти для объекта структурного типа и в цикле для каждого элемента массива объектов. Удалить динамический массив.