ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

19.11.2009, 02:45
|
|
Участник форума
Регистрация: 20.12.2008
Сообщений: 130
Провел на форуме: 436500
Репутация:
11
|
|
Сообщение от Vinsik
Привет всем!
Спасайте срочно пожалуйста!)
Паскаль:
Упорядочить массив А(20) методом слияния.
Код:
Program SlivSort;
const arrsize= 20;
Var A,B : array[1..20] of integer;
N,i : integer;
Procedure Sliv(p,q : integer); {процедура сливающая массивы}
Var r,i,j,k : integer;
Begin
r:=(p+q) div 2;
i:=p;
j:=r+1;
for k:=p to q do
if (i<=r) and ((j>q) or (a[i]<a[j])) then
begin
b[k]:=a[i];
i:=i+1;
end
else
begin
b[k]:=a[j];
j:=j+1;
end ;
for k:=p to q do
a[k]:=b[k];
End;
Procedure Sort(p,q : integer); {p,q - индексы начала и конца сортируемой части массива}
Begin
if p<q then {массив из одного элемента тривиально упорядочен}
begin
Sort(p,(p+q) div 2);
Sort((p+q) div 2 + 1,q);
Sliv(p,q);
end;
End;
Begin
{Определение размера массива A - N) и его заполнение}
randomize;
for i:= 1 to arrsize do begin
A[i]:= random(50);
write(A[i],' ');
end;
Writeln;
{запуск сортирующей процедуры}
Sort(1,arrsize);
{Вывод отсортированного массива A}
for i:= 1 to arrsize do write(a[i],' ');
readln;
End.
|
|
|

19.11.2009, 15:03
|
|
Новичок
Регистрация: 21.12.2006
Сообщений: 5
Провел на форуме: 33140
Репутация:
0
|
|
спасайте..
написал программу на С++ которая высчитывает дни недели.
стал писать защиту от дураков, но доделать её немогу.
нужно сделать чтоб программа учитывала весокосные года и при ошибке писала что вы ошиблись.
идейки есть( но к сажалению языка незнаю( ибо в универе прошлом учил паскаль(
завтра сдавать а я низнаю как сделать(
PHP код:
#include <stdio.h>
#include <windows.h>
#include <math.h>
#include <conio.h>
//_______________________Руссификатор консоли_______________________________________
char bufRus[256];
char*Rus(const char*text)
{
CharToOem(text, bufRus);
return bufRus;
}
//_________________Программа___________________________
void main ()
{
int day, month, year;
int c,y;
int m;
int d;
printf(Rus("Определение дня недели по дате\n"));
printf(Rus("ВВедите дату: день месяц год\n"));
printf(Rus("Например: 5 12 2001\n"));
printf(Rus("ВВедите: Месяц ->\n"));
scanf("%i", &month);
//__________________________Защита________________________________
while (month>12)
{
if (month>12)
{printf(Rus("Дибил, ошибся, попробуй ещё ->\n"));
scanf("%i", &month); }
else break;
}
//__________________________________________________________
printf(Rus("ВВедите: День ->\n"));
scanf("%i", &day);
//__________________________Защита________________________________
while (month==1||month==3||month==5||month==7||month==8||month==10||month==12)
{
if (day>31)
{printf(Rus("Дибил, ошибся, попробуй ещё ->\n"));
scanf("%i", &day);}
else break;
}
while (month==2)
{
if (day>29)
{printf(Rus("Дибил, ошибся, попробуй ещё ->\n"));
scanf("%i", &day);}
else break;
}
while (month==4||month==6||month==9||month==11)
{
if (day>30)
{printf(Rus("Дибил, ошибся, попробуй ещё ->\n"));
scanf("%i", &day);}
else break;
}
//__________________________________________________________
printf(Rus("ВВедите: Год ->\n"));
scanf("%i", &year);
if (month==1||month==2)
year--;
m=month - 2;
if (m<=0) m+=12;
c=year/100;
y=year-c*100;
d=(day+(13*m-1)/5+y+y/4+c/4-2*c+777)%7;
switch (d)
{
case 1: printf(Rus("Понедельник\n")); break;
case 2: printf(Rus("Вторник\n")); break;
case 3: printf(Rus("Среда\n")); break;
case 4: printf(Rus("Четверг\n")); break;
case 5: printf(Rus("Пятница\n")); break;
case 6: printf(Rus("Суббота\n")); break;
case 0: printf(Rus("Воскресенье\n")); break;
}
getch ();
}
|
|
|

19.11.2009, 17:57
|
|
Постоянный
Регистрация: 31.07.2008
Сообщений: 370
Провел на форуме: 2866942
Репутация:
350
|
|
Ну например
Код:
int god;
if (god%4==0)
printf("Год высокосный");
походу так
Дальше спихнуть в свой код сам думаю сможеш=)
|
|
|

19.11.2009, 18:06
|
|
Участник форума
Регистрация: 20.02.2009
Сообщений: 183
Провел на форуме: 719582
Репутация:
50
|
|
Задача на Паскале: ........, Если масисив не упорядочен, то определить длину упорядоченной часта массива.
я делаю так
Код:
t:=0;
for i:=0 to n do
begin
if m[i]<m[i+1] then k:=k+1
else
begin
if t<k then
begin
t:=k;
k:=1;
end
И если масив состоит из 12123123451
Выведет 5, т.к. это самая длинная упорядочена часть масива.
Но если 12123123456
То выведет 3, т.е. оно у меня не правильно считает, потому что не выполняется условие f m[i]<m[i+1]
Как сделать что бы нормально считало?
Последний раз редактировалось warkk; 19.11.2009 в 20:29..
|
|
|

19.11.2009, 18:09
|
|
Постоянный
Регистрация: 31.07.2008
Сообщений: 370
Провел на форуме: 2866942
Репутация:
350
|
|
Смотри. у тебя переменная t:=0
В условии if t>k then
begin
t:=k;
k:=1;
end
она всё время меньше k будет
|
|
|

19.11.2009, 18:12
|
|
Участник форума
Регистрация: 20.02.2009
Сообщений: 183
Провел на форуме: 719582
Репутация:
50
|
|
Но ведь во второй раз она может быть и больше k. Просто мне нужно самую длинную упорядоченную часть масива. Вдруг эта часть будет меньше предыдущей упорядоченной части.
|
|
|

19.11.2009, 18:15
|
|
Постоянный
Регистрация: 31.07.2008
Сообщений: 370
Провел на форуме: 2866942
Репутация:
350
|
|
Ты меня конешно извини, но я упор не вижу что бы твоя перемення t где нибудь увеличивалася
|
|
|

19.11.2009, 18:34
|
|
Участник форума
Регистрация: 20.02.2009
Сообщений: 183
Провел на форуме: 719582
Репутация:
50
|
|
t:=k;
|
|
|

19.11.2009, 20:13
|
|
Постоянный
Регистрация: 31.07.2008
Сообщений: 370
Провел на форуме: 2866942
Репутация:
350
|
|
Блин да посмотри сам... где в else ты проверяеш или t больше k... это условие никогда не збудетсо... може t меньше k?
|
|
|

19.11.2009, 20:28
|
|
Участник форума
Регистрация: 20.02.2009
Сообщений: 183
Провел на форуме: 719582
Репутация:
50
|
|
Эм.. Точно, чет затупил, сори) Но проблема актуальна, как определить длину упорядоченной части массива?
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|