HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 23.10.2007, 11:59
r0
Постоянный
Регистрация: 17.07.2005
Сообщений: 475
С нами: 10955906

Репутация: 488
По умолчанию

Прямоугольная плоскость задана координатами (x1,y1) - левая верх. точка и (x2,y2) - правая нижняя.
По границе ползет "удав" со скоростью V. Внутри области движется точка с скорость v1. Она начинает свое движение вниз от границы области на заданном расстоянии S от левого верхнего угла под углом A к нижней линии области. Точка движется, отражаясь от стенок, до тех пор пока не столкнется с "удавом". Обьекты начинают движение одновременно. При стократном столкновении программа завершает работу, оповещая пользователя.
Реализовать: Pascal
 
Ответить с цитированием

  #2  
Старый 25.10.2007, 15:02
.:baclan:.
Новичок
Регистрация: 21.11.2006
Сообщений: 1
С нами: 10248063

Репутация: 0
По умолчанию

нужна лаба на С: Сортировка с помощью включения используя метод деления пополам,
Пирамидальная сортировка. по возрастанию.
Необходимо написать программу, которая должна:
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. помогите плз

Последний раз редактировалось .:baclan:.; 29.10.2007 в 21:56..
 
Ответить с цитированием

Проблемка с Visual Basic 6.0
  #3  
Старый 28.10.2007, 23:42
Woland
Новичок
Регистрация: 22.10.2007
Сообщений: 4
С нами: 9764379

Репутация: 0
Unhappy Проблемка с Visual Basic 6.0

Значить такой код на кнопочке.
Код:
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)
List1(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 в чем проблема?
 
Ответить с цитированием

  #4  
Старый 30.10.2007, 01:20
FRik07
Новичок
Регистрация: 27.10.2007
Сообщений: 3
С нами: 9758536

Репутация: 0
По умолчанию

Разграничегие доступа

Всех приветствую. Вопрос вот в чем: задали в универе лабу: написать программу под Win для добавления учетных записей в системе и назначения им (группам) прав. Как такое реализовывется? Где об этом почитать? Если можно, пример..

p.s. по возможности написать руткит для работы программы не с админскими правами.
 
Ответить с цитированием

  #5  
Старый 31.10.2007, 17:05
TTyck
Участник форума
Регистрация: 13.11.2005
Сообщений: 199
С нами: 10785229

Репутация: 75
По умолчанию

Многоразрядные числа представлены в виде одномерного массива. Необходимо:
- реализовать операцию возведения многозначного числа в степень;
- реализовать операцию умножения многозначного числа на многозначное число;
Неоходимо реализовать на Pascal'e.
Заранее спасибо)
 
Ответить с цитированием

  #6  
Старый 06.11.2007, 00:08
helat
Участник форума
Регистрация: 22.01.2007
Сообщений: 218
С нами: 10157802

Репутация: 156
По умолчанию

http://www.kursovik.com/programming/109011.html


Расчет количества дней между датами

Программа расчитывает количество дней между двумя датами, заданных тремя чслами - год, месяц, день.
Расчет ведется по всем правилам, с учетом високосных годов.

нужен сабж на паскале (Pascal)
 
Ответить с цитированием

  #7  
Старый 09.11.2007, 00:25
Red_Red1
Участник форума
Регистрация: 12.01.2007
Сообщений: 262
С нами: 10172486

Репутация: 874
По умолчанию

2 helat
Цитата:
Сообщение от helat  
http://www.kursovik.com/programming/109011.html


Расчет количества дней между датами

Программа расчитывает количество дней между двумя датами, заданных тремя чслами - год, месяц, день.
Расчет ведется по всем правилам, с учетом високосных годов.

нужен сабж на паскале (Pascal)
Вот тоже решил написать свой вариан. Когда тестил, использовал ссылку которую ты привел. Также проверил програмку от 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. Но при корректном вводе считает правильно (я надеюсь).
Код:
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.

Последний раз редактировалось Red_Red1; 09.11.2007 в 00:29..
 
Ответить с цитированием

  #8  
Старый 06.11.2007, 00:53
Dumkopff
Познающий
Регистрация: 05.04.2006
Сообщений: 76
С нами: 10578485

Репутация: 73
По умолчанию

helat
Код:
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.
не самая удачная реализация, но считает прально. =\
 
Ответить с цитированием

  #9  
Старый 06.11.2007, 01:06
helat
Участник форума
Регистрация: 22.01.2007
Сообщений: 218
С нами: 10157802

Репутация: 156
По умолчанию

прога то считает.но очень мудрёная.
у кого что ещё есть?
мб через юлианский день высчитывать
 
Ответить с цитированием

  #10  
Старый 06.11.2007, 05:30
G1yuK
Познающий
Регистрация: 25.05.2007
Сообщений: 36
С нами: 9981605

Репутация: 28
По умолчанию

когда то сам искал, нужно было помочь человеку с задачкой, вот через Юлианский день
Код:
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
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Американским студентам запретили пользоваться Skype KPOT_f!nd Мировые новости. Обсуждения. 1 28.09.2006 03:47
Любителям квестов сюда!! FoX's Болталка 10 25.01.2005 20:42



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.

×

Внести депозит

Введите сумму USDT:

Принимается только USDT TRC20. Fake/Flash USDT не засчитывается.

×

Вывести депозит

Сумма USDT:

Ваш USDT TRC20 кошелек:

Заявка будет отправлена администратору.