Hip-Hop.Ru

Hip-Hop.Ru (https://www.hip-hop.ru/forum/)
-   Компьютеры и Интернет (https://www.hip-hop.ru/forum/kompyutery-i-internet-f186)
-   -   Программисты / Компьютерные техники, которые НИКОГДА не спят! [Беседка] (https://www.hip-hop.ru/forum/programmisty-kompyuternye-tehniki-kotorye-nikogda-ne-spyat-besedka-252443/)

иксуй! 19 января 2010 17:09

Цитата:

Цитата от Hammer (Сообщение 1069015949)
Цитата:

Цитата от иксуй! (Сообщение 1069012080)
Код:

writeln('в®зЄЁ ЇҐаҐбҐзҐ­Ёп:');
writeln;


Из-за этих ошибок не компилировалась. В программу не вникал, т.е. указал лишь на ошибки при компиляции.

ошибки все поисправлял
компилятор молчит
Код:

program task1;
  const
      eps=0.0001;
      p=0.333;

  type TypeFunc = function (x:real):real;

  var  x,a,b,c,S,s1,s2,s3,xr1,xr2,xr3:real;
      n0:integer;

{$F+}
    {***f1***}
    function f1 (x:real):real; begin f1:=3*(0.5/(x+1)+1) end;

    {***f2***}
    function f2 (x:real):real; begin f2:=2.5*x-9.5      end;

    {***f3***}
    function f3 (x:real):real; begin f3:=5/x            end;
    {******}

    procedure root (f,g:TypeFunc; a,b:real; var x:real);
    var c,Fc,Fa,Fb:real;
    begin
      while b-a > eps do
      begin
        c:=0.5*(b+a);
        Fc:=f(c)-g(c);
        Fa:=Fc*(f(a)-g(a));
        Fb:=Fc*(f(b)-g(b));
        if Fa < 0 then b:=c
        else
            if Fb < 0 then a:=c
        else
            if Fc = 0 then begin
                    b:=c;a:=c;
                    break
                    end;
      end;
        x:=(b+a)*0.5;
    end;
    {******}
    {******FUNCTION INTEGRAL******}

{$F+}
    function integral(f:TypeFunc;a,b:real):real;
    var
      n,i:integer;
      s1,s2,h:real;
    begin
      n:=1;
      h:=(b-a)/n;
      s1:=h*0.5*(f(a)+f(a+h));
      n:=2*n;
      h:=(b-a)/n;
      s2:=h*(0.5*f(a)+f(a+h)+0.5*f(a+n*h));
      repeat
          h:=(b-a)/n;
          s1:=s2;
          s2:=0.5*h*(f(a+n*h)+f(a+2*n*h));
          for i:=n+1 to 2*n-1 do
          begin
            h:=(a-b)/i;
            s2:=s2+f(a+i*h);
          end;
          n:=2*n;
    until (abs(s1-s2)/p)<eps;
    integral:=s2;
    end;
{------------------------Ѓ‹ЋЉ-------------------------}
begin
writeln('ўўҐ¤ЁвҐ Є®®а¤Ё­ вл в®зҐЄ a Ё b ­  ®бЁ x');
readln(a,b);
root(@f1,@f2,a,b,xr1);
root(@f2,@f3,a,b,xr2);
root(@f3,@f1,a,b,xr3);
writeln('в®зЄЁ ЇҐаҐбҐзҐ­Ёп:');
writeln('  x1=',xr1,'  x2=',xr2,'  x3=',xr3);
s1:=integral(@f1,xr1,xr2);
s2:=integral(@f2,xr2,xr3);
s3:=integral(@f3,xr1,xr3);
S:=s1+s2+s3;
Writeln('S=',s);
readln(s)
end.

но работать не хочет:(

Саша Герасимов 22 января 2010 20:28

ребята выручайте!у меня практика!
мне надо сдать 5 программ,пока дали одну(
вот надо написать на ассемблере:
написать программу выделения из исходной строки подстрок,символов,заданной длины с указанием номера позиции
:miha:
помогите пожалуйста!

Добавлено через 5 минут 48 секунд
подкиньте пожалуйста саму прогу,чето поисковик даёт платную дрянь:(

diskursmonger 22 января 2010 21:22

думаю с низким уровнем тут туго

Илья Имлав 23 января 2010 06:42

Была подобная лаба, вот глянь.

Образовать строку, повторив фрагмент исходной строки с за¬данной позиции данной длины требуемое число раз.
Показать скрытый текст

.386
.MODEL FLAT, STDCALL

; прототипы внешних процедур описываются директивой EXTERN,
; после знака @ указывается общая длина передаваемых параметров,
; после двоеточия указывается дистанция «ближняя» – NEAR

EXTERN GetStdHandle@4:NEAR
EXTERN WriteConsoleA@20:NEAR
EXTERN CharToOemA@8:NEAR
EXTERN ReadConsoleA@20:NEAR
EXTERN ExitProcess@4:NEAR ; функция выхода из программы
EXTERN lstrlenA@4:NEAR ; функция определения длины строки

; includelib user32.lib
; includelib kernel32.lib

; сегмент данных
.DATA
H_OUT DD ? ; дескриптор вывода (директива DD резервирует память

; объемом 32 бита (4 байта))

H_IN DD ? ; дескриптор ввода
STRN1 DB "Введите строку: ",13,10,0 ; выводимая строка,
STRN2 DB "Введите начальную позицию: ",13,10,0 ; выводимая строка,
STRN3 DB "Введите длину сегмента: ",13,10,0 ; выводимая строка,
STRN4 DB "Введите количество повторений: ",13,10,0 ; выводимая строка,

; управляющие символы: 13 – возврат каретки, 10 – переход на новую
; строку, 0 – конец строки (с использованием директивы DB
; резервируется массив байтов)

LEN_BUF DW ?
LEN DW ?
IN_BUF DB 200 dup (?); буфер для вводимой строки
OUT_BUF DB 200 dup (?); буфер для выводимой строки
STR_TMP DB 20 dup (?); буфер для выводимой строки

POS DD ?
LENG DD ?
COUNT DD ?


; сегмент кода
.CODE
START:

; метка точки входа
; перекодируем строку

PUSH OFFSET STRN1 ; OFFSET – операция, возвращающая смещение
PUSH OFFSET STRN1
CALL CharToOemA@8

PUSH OFFSET STRN2 ; OFFSET – операция, возвращающая смещение
PUSH OFFSET STRN2
CALL CharToOemA@8

PUSH OFFSET STRN3 ; OFFSET – операция, возвращающая смещение
PUSH OFFSET STRN3
CALL CharToOemA@8

PUSH OFFSET STRN4 ; OFFSET – операция, возвращающая смещение
PUSH OFFSET STRN4
CALL CharToOemA@8


; получить дескриптор ввода

PUSH -10
CALL GetStdHandle@4
MOV H_IN, EAX

; получить дескриптор вывода

PUSH -11
CALL GetStdHandle@4
MOV H_OUT, EAX

; определение длины строки

PUSH OFFSET STRN1 ; в стек помещается указатель на строку
CALL lstrlenA@4 ; длина в EAX

; вызов функции WriteConsoleA для вывода строки STRN

PUSH 0 ; в стек помещается 5-й параметр
PUSH OFFSET LEN ; 4-й параметр
PUSH EAX ; 3-й параметр
PUSH OFFSET STRN1 ; 2-й параметр
PUSH H_OUT ; 1-й параметр
CALL WriteConsoleA@20

; ввод строки

PUSH 0 ; в стек помещается 5-й параметр
PUSH OFFSET LEN_BUF ; 4-й параметр
PUSH 200 ; 3-й параметр
PUSH OFFSET IN_BUF ; 2-й параметр
PUSH H_IN ; 1-й параметр
CALL ReadConsoleA@20

PUSH OFFSET STRN2 ; в стек помещается указатель на строку
CALL lstrlenA@4 ; длина в EAX

PUSH 0 ; в стек помещается 5-й параметр
PUSH OFFSET LEN ; 4-й параметр
PUSH EAX ; 3-й параметр
PUSH OFFSET STRN2 ; 2-й параметр
PUSH H_OUT ; 1-й параметр
CALL WriteConsoleA@20

PUSH 0 ; в стек помещается 5-й параметр
PUSH OFFSET LEN ; 4-й параметр
PUSH 200 ; 3-й параметр
PUSH OFFSET STR_TMP ; 2-й параметр
PUSH H_IN ; 1-й параметр
CALL ReadConsoleA@20

push offset POS
push offset STR_TMP
call _StrToINT@8

PUSH OFFSET STRN3 ; в стек помещается указатель на строку
CALL lstrlenA@4 ; длина в EAX

PUSH 0 ; в стек помещается 5-й параметр
PUSH OFFSET LEN ; 4-й параметр
PUSH EAX ; 3-й параметр
PUSH OFFSET STRN3 ; 2-й параметр
PUSH H_OUT ; 1-й параметр
CALL WriteConsoleA@20

PUSH 0 ; в стек помещается 5-й параметр
PUSH OFFSET LEN ; 4-й параметр
PUSH 200 ; 3-й параметр
PUSH OFFSET STR_TMP ; 2-й параметр
PUSH H_IN ; 1-й параметр
CALL ReadConsoleA@20

push offset LENG
push offset STR_TMP
call _StrToINT@8

PUSH OFFSET STRN4 ; в стек помещается указатель на строку
CALL lstrlenA@4 ; длина в EAX

PUSH 0 ; в стек помещается 5-й параметр
PUSH OFFSET LEN ; 4-й параметр
PUSH EAX ; 3-й параметр
PUSH OFFSET STRN4 ; 2-й параметр
PUSH H_OUT ; 1-й параметр
CALL WriteConsoleA@20

PUSH 0 ; в стек помещается 5-й параметр
PUSH OFFSET LEN ; 4-й параметр
PUSH 200 ; 3-й параметр
PUSH OFFSET STR_TMP ; 2-й параметр
PUSH H_IN ; 1-й параметр
CALL ReadConsoleA@20

push offset COUNT
push offset STR_TMP
call _StrToINT@8

; проведение операций над строками

push COUNT ; 5й параметр количество повторений
push LENG ; 4й параметр длина сегмента
push POS ; 3й параметр позиция сегмента
push offset OUT_BUF ; 2й параметр указатель на примник
push offset IN_BUF ; 1й параметр указатель на источник
call _Ololo@20

; вывод полученной строки

PUSH OFFSET OUT_BUF ; в стек помещается указатель на строку
CALL lstrlenA@4 ; длина в EAX

; вызов функции WriteConsoleA для вывода строки STRN

PUSH 0 ; в стек помещается 5-й параметр
PUSH OFFSET LEN ; 4-й параметр
PUSH EAX ; 3-й параметр
PUSH OFFSET OUT_BUF ; 2-й параметр
PUSH H_OUT ; 1-й параметр
CALL WriteConsoleA@20

; небольшая задержка

MOV ECX,01FFFFFFFH
L1:
LOOP L1

; выход из программы

PUSH 0 ; параметр: код выхода
CALL ExitProcess@4

_StrToINT@8 proc ; перегонка строки в число
push ebp
mov ebp,esp
mov esi,[ebp+8]
mov edi,[ebp+12]

push esi
call lstrlenA@4 ; длина в EAX
mov ecx, eax
add esi, ecx
mov ebx, 1

@p1loop:
dec esi
mov al,[esi]
mov ah, 0
cmp al,10
je @p1next
cmp al,0
je @p1next
cmp al,13
je @p1next
sub al,30h
imul eax, ebx
add [edi], eax
imul ebx, 10
@p1next:
loop @p1loop

@p1end:
pop ebp
ret 8
_StrToINT@8 endp


; функция дублирования
; параметры
; указатель на строку от куда
; указатель на строку куда
; 4 байта позиция
; 4 байта длина
; 4 байта количество раз
; размер парметров 20байт

_Ololo@20 proc
push ebp
mov ebp,esp
mov esi,[ebp+8]
mov edi,[ebp+12]
mov eax,[ebp+16]
add esi, eax
dec esi
mov eax, esi
mov edx,[ebp+20]
mov ebx,[ebp+24]
; загрузили все параметры

@p0count_next:
cmp ebx, 0
je @p0end
dec ebx
mov ecx, edx
mov esi, eax
@p0next:
movsb
loop @p0next
jmp @p0count_next

@p0end:
pop ebp
ret 20
_Ololo@20 endp


END START


Onemix 23 января 2010 20:37

Нужен ОЧЕНЬ толковый программист для совместного ОЧЕНЬ интересного проекта хип-хоп тематики (будущая популярность проекта, окупаемость, уверен превзойдет все ожидания)

Саша Герасимов 23 января 2010 22:12

Цитата:

Цитата от Илья Имлав (Сообщение 1069054000)
Была подобная лаба, вот глянь.

Образовать строку, повторив фрагмент исходной строки с за¬данной позиции данной длины требуемое число раз.
Показать скрытый текст

.386
.MODEL FLAT, STDCALL

; прототипы внешних процедур описываются директивой EXTERN,
; после знака @ указывается общая длина передаваемых параметров,
; после двоеточия указывается дистанция «ближняя» – NEAR

EXTERN GetStdHandle@4:NEAR
EXTERN WriteConsoleA@20:NEAR
EXTERN CharToOemA@8:NEAR
EXTERN ReadConsoleA@20:NEAR
EXTERN ExitProcess@4:NEAR ; функция выхода из программы
EXTERN lstrlenA@4:NEAR ; функция определения длины строки

; includelib user32.lib
; includelib kernel32.lib

; сегмент данных
.DATA
H_OUT DD ? ; дескриптор вывода (директива DD резервирует память

; объемом 32 бита (4 байта))

H_IN DD ? ; дескриптор ввода
STRN1 DB "Введите строку: ",13,10,0 ; выводимая строка,
STRN2 DB "Введите начальную позицию: ",13,10,0 ; выводимая строка,
STRN3 DB "Введите длину сегмента: ",13,10,0 ; выводимая строка,
STRN4 DB "Введите количество повторений: ",13,10,0 ; выводимая строка,

; управляющие символы: 13 – возврат каретки, 10 – переход на новую
; строку, 0 – конец строки (с использованием директивы DB
; резервируется массив байтов)

LEN_BUF DW ?
LEN DW ?
IN_BUF DB 200 dup (?); буфер для вводимой строки
OUT_BUF DB 200 dup (?); буфер для выводимой строки
STR_TMP DB 20 dup (?); буфер для выводимой строки

POS DD ?
LENG DD ?
COUNT DD ?


; сегмент кода
.CODE
START:

; метка точки входа
; перекодируем строку

PUSH OFFSET STRN1 ; OFFSET – операция, возвращающая смещение
PUSH OFFSET STRN1
CALL CharToOemA@8

PUSH OFFSET STRN2 ; OFFSET – операция, возвращающая смещение
PUSH OFFSET STRN2
CALL CharToOemA@8

PUSH OFFSET STRN3 ; OFFSET – операция, возвращающая смещение
PUSH OFFSET STRN3
CALL CharToOemA@8

PUSH OFFSET STRN4 ; OFFSET – операция, возвращающая смещение
PUSH OFFSET STRN4
CALL CharToOemA@8


; получить дескриптор ввода

PUSH -10
CALL GetStdHandle@4
MOV H_IN, EAX

; получить дескриптор вывода

PUSH -11
CALL GetStdHandle@4
MOV H_OUT, EAX

; определение длины строки

PUSH OFFSET STRN1 ; в стек помещается указатель на строку
CALL lstrlenA@4 ; длина в EAX

; вызов функции WriteConsoleA для вывода строки STRN

PUSH 0 ; в стек помещается 5-й параметр
PUSH OFFSET LEN ; 4-й параметр
PUSH EAX ; 3-й параметр
PUSH OFFSET STRN1 ; 2-й параметр
PUSH H_OUT ; 1-й параметр
CALL WriteConsoleA@20

; ввод строки

PUSH 0 ; в стек помещается 5-й параметр
PUSH OFFSET LEN_BUF ; 4-й параметр
PUSH 200 ; 3-й параметр
PUSH OFFSET IN_BUF ; 2-й параметр
PUSH H_IN ; 1-й параметр
CALL ReadConsoleA@20

PUSH OFFSET STRN2 ; в стек помещается указатель на строку
CALL lstrlenA@4 ; длина в EAX

PUSH 0 ; в стек помещается 5-й параметр
PUSH OFFSET LEN ; 4-й параметр
PUSH EAX ; 3-й параметр
PUSH OFFSET STRN2 ; 2-й параметр
PUSH H_OUT ; 1-й параметр
CALL WriteConsoleA@20

PUSH 0 ; в стек помещается 5-й параметр
PUSH OFFSET LEN ; 4-й параметр
PUSH 200 ; 3-й параметр
PUSH OFFSET STR_TMP ; 2-й параметр
PUSH H_IN ; 1-й параметр
CALL ReadConsoleA@20

push offset POS
push offset STR_TMP
call _StrToINT@8

PUSH OFFSET STRN3 ; в стек помещается указатель на строку
CALL lstrlenA@4 ; длина в EAX

PUSH 0 ; в стек помещается 5-й параметр
PUSH OFFSET LEN ; 4-й параметр
PUSH EAX ; 3-й параметр
PUSH OFFSET STRN3 ; 2-й параметр
PUSH H_OUT ; 1-й параметр
CALL WriteConsoleA@20

PUSH 0 ; в стек помещается 5-й параметр
PUSH OFFSET LEN ; 4-й параметр
PUSH 200 ; 3-й параметр
PUSH OFFSET STR_TMP ; 2-й параметр
PUSH H_IN ; 1-й параметр
CALL ReadConsoleA@20

push offset LENG
push offset STR_TMP
call _StrToINT@8

PUSH OFFSET STRN4 ; в стек помещается указатель на строку
CALL lstrlenA@4 ; длина в EAX

PUSH 0 ; в стек помещается 5-й параметр
PUSH OFFSET LEN ; 4-й параметр
PUSH EAX ; 3-й параметр
PUSH OFFSET STRN4 ; 2-й параметр
PUSH H_OUT ; 1-й параметр
CALL WriteConsoleA@20

PUSH 0 ; в стек помещается 5-й параметр
PUSH OFFSET LEN ; 4-й параметр
PUSH 200 ; 3-й параметр
PUSH OFFSET STR_TMP ; 2-й параметр
PUSH H_IN ; 1-й параметр
CALL ReadConsoleA@20

push offset COUNT
push offset STR_TMP
call _StrToINT@8

; проведение операций над строками

push COUNT ; 5й параметр количество повторений
push LENG ; 4й параметр длина сегмента
push POS ; 3й параметр позиция сегмента
push offset OUT_BUF ; 2й параметр указатель на примник
push offset IN_BUF ; 1й параметр указатель на источник
call _Ololo@20

; вывод полученной строки

PUSH OFFSET OUT_BUF ; в стек помещается указатель на строку
CALL lstrlenA@4 ; длина в EAX

; вызов функции WriteConsoleA для вывода строки STRN

PUSH 0 ; в стек помещается 5-й параметр
PUSH OFFSET LEN ; 4-й параметр
PUSH EAX ; 3-й параметр
PUSH OFFSET OUT_BUF ; 2-й параметр
PUSH H_OUT ; 1-й параметр
CALL WriteConsoleA@20

; небольшая задержка

MOV ECX,01FFFFFFFH
L1:
LOOP L1

; выход из программы

PUSH 0 ; параметр: код выхода
CALL ExitProcess@4

_StrToINT@8 proc ; перегонка строки в число
push ebp
mov ebp,esp
mov esi,[ebp+8]
mov edi,[ebp+12]

push esi
call lstrlenA@4 ; длина в EAX
mov ecx, eax
add esi, ecx
mov ebx, 1

@p1loop:
dec esi
mov al,[esi]
mov ah, 0
cmp al,10
je @p1next
cmp al,0
je @p1next
cmp al,13
je @p1next
sub al,30h
imul eax, ebx
add [edi], eax
imul ebx, 10
@p1next:
loop @p1loop

@p1end:
pop ebp
ret 8
_StrToINT@8 endp


; функция дублирования
; параметры
; указатель на строку от куда
; указатель на строку куда
; 4 байта позиция
; 4 байта длина
; 4 байта количество раз
; размер парметров 20байт

_Ololo@20 proc
push ebp
mov ebp,esp
mov esi,[ebp+8]
mov edi,[ebp+12]
mov eax,[ebp+16]
add esi, eax
dec esi
mov eax, esi
mov edx,[ebp+20]
mov ebx,[ebp+24]
; загрузили все параметры

@p0count_next:
cmp ebx, 0
je @p0end
dec ebx
mov ecx, edx
mov esi, eax
@p0next:
movsb
loop @p0next
jmp @p0count_next

@p0end:
pop ebp
ret 20
_Ololo@20 endp


END START


спасибо конечно,но она не компится,я в ассемблере не одной команды не знаю
писать заставляют в этом говне

a.su.s 25 января 2010 15:29

Цитата:

Цитата от Emporio (Сообщение 1069060172)
Нужен ОЧЕНЬ толковый программист для совместного ОЧЕНЬ интересного проекта хип-хоп тематики (будущая популярность проекта, окупаемость, уверен превзойдет все ожидания)

Работать забесплатно, угадал?)

B_R 25 января 2010 17:23

Программеры паскаля, нужна помощь
Короче на учебе задали такую хню

"Создать программу для тестирования по следующему сценарию:

для каждого вопроса:

-выволится вопрос
-принимается ответ
-выводится сообщение о правильности ответа

В конце подсчет баллов"

Плиз, очень надо
вчера бошку встрес, туплю ппц

Саша Герасимов 28 января 2010 15:16

Завтра надо сдать уже:написать на asm или flat assembler
1)дана матрица.найти максимальный элемент св указанном столбце
2)даны 2 массива.Сформировать третий массив,в него занести все чётные числа из первого массива и все нечётные из второго.
3)Дан четырёхм значный номер года.определить номер года и столетия,например 1492
4)дан массив байтов,подсчитать колличество элементов равных трём
КАРАУЛ!!!!очень надо,вы себе не представляете как!

Добавлено через 3 дня 18 часов 15 минут
:miha:я в шоке:(

Добавлено через 4 дня 10 часов 25 минут
ну будьте людьми:o

Добавлено через 4 дня 12 часов 45 минут
пожааалуйста:saint:

Добавлено через 5 дней 20 часов 47 минут
:mitchust:

иксуй! 10 февраля 2010 23:00

ребят, кто шарит помогите, тут дела на 3 минуты
нужна функция на паскале, сравнивающая две даты

дата представлена типом запись
и хранятся в виде массива
напишите код функции, если не впадлу, тут дела на пять минут, я просто путаюсь в переменных с типом запись, не знаю что куда:(
Код:

type date=record
          day:1..31;
          month:1..12
          year:integer
      end;


Hammer 11 февраля 2010 08:10

Цитата:

Цитата от иксуй! (Сообщение 1069236097)
ребят, кто шарит помогите, тут дела на 3 минуты
нужна функция на паскале, сравнивающая две даты

дата представлена типом запись
и хранятся в виде массива
напишите код функции, если не впадлу, тут дела на пять минут, я просто путаюсь в переменных с типом запись, не знаю что куда:(
Код:

type date=record
          day:1..31;
          month:1..12
          year:integer
      end;



Код:

type date=record
          day:1..31;
          month:1..12;
          year:integer
      end;

function Comp(a, b: date): integer; {0 - равны, 1 - первая дата больше, 2 - вторая дата больше}
var result: integer;
begin
  { Сравниваем года }
  if a.year > b.year then result:=1;
  if a.year < b.year then result:=2;
  if a.year = b.year then result:=0;
  { Сравниваем месяца }
  if result = 0 then
    begin
      if a.month > b.month then result:=1;
      if a.month < b.month then result:=2;
      if a.month = b.month then result:=0;
    end;

  { Сравниваем дни }
  if result = 0 then
    begin
      if a.day > b.day then result:=1;
      if a.day < b.day then result:=2;
      if a.day = b.day then result:=0;
    end;
  Comp:= result;
end;
var a, b: date;
begin
  { Описываем переменные }
  a.day:=11; a.month:=2; a.year:=2010;
  b.day:=10; b.month:=2; b.year:=2010;
  { End }
 
  writeln(Comp(a, b));
  readln;
end.


лжец 11 февраля 2010 10:53

Вложений: 1
есть кто шарит в юкозе?дали в колледже задание сделать сайт на юкозе!как сделать чтобы названия меню переносилось на след строку?
смотрите скрин
видите стоит многоточие,а мне нужно чтобы было полное название с переносом на след строку

иксуй! 11 февраля 2010 20:54

Цитата:

Цитата от Hammer (Сообщение 1069237412)
Цитата:

Цитата от иксуй! (Сообщение 1069236097)
Показать скрытый текст
ребят, кто шарит помогите, тут дела на 3 минуты
нужна функция на паскале, сравнивающая две даты

дата представлена типом запись
и хранятся в виде массива
напишите код функции, если не впадлу, тут дела на пять минут, я просто путаюсь в переменных с типом запись, не знаю что куда:(
Код:

type date=record
          day:1..31;
          month:1..12
          year:integer
      end;


Показать скрытый текст



Код:

type date=record
          day:1..31;
          month:1..12;
          year:integer
      end;

function Comp(a, b: date): integer; {0 - равны, 1 - первая дата больше, 2 - вторая дата больше}
var result: integer;
begin
  { Сравниваем года }
  if a.year > b.year then result:=1;
  if a.year < b.year then result:=2;
  if a.year = b.year then result:=0;
  { Сравниваем месяца }
  if result = 0 then
    begin
      if a.month > b.month then result:=1;
      if a.month < b.month then result:=2;
      if a.month = b.month then result:=0;
    end;

  { Сравниваем дни }
  if result = 0 then
    begin
      if a.day > b.day then result:=1;
      if a.day < b.day then result:=2;
      if a.day = b.day then result:=0;
    end;
  Comp:= result;
end;
var a, b: date;
begin
  { Описываем переменные }
  a.day:=11; a.month:=2; a.year:=2010;
  b.day:=10; b.month:=2; b.year:=2010;
  { End }
 
  writeln(Comp(a, b));
  readln;
end.


спасибо:)
так просто всё:(

Космонаут 12 февраля 2010 10:40

пацаны кто в Си# разбирется, обьясните как между формами передавать значения.
Чтобы если я менял значение переменной в одной форме, менялось и в другой:|

diskursmonger 12 февраля 2010 13:00

Цитата:

Цитата от Космонаут (Сообщение 1069248460)
пацаны кто в Си# разбирется, обьясните как между формами передавать значения.
Чтобы если я менял значение переменной в одной форме, менялось и в другой:|

если две формы используют одни и те же свойства, целесообразно эти свойства поместить в отдельный класс например
хотя для разных задач используются разные методы
очень удобно использовать датамодели
опиши задачу свою

Hammer 12 февраля 2010 14:21

Как мне помнится, в С# нет глобальных переменных..:|

diskursmonger 12 февраля 2010 18:46

Что ты понимаеш под глобальными?
Глобальными считаются любые свойства(переменные определённые вне методов) класса
относитльно класса конечно

Космонаут 12 февраля 2010 18:54

Цитата:

Цитата от frolkin (Сообщение 1069249600)
Цитата:

Цитата от Космонаут (Сообщение 1069248460)
пацаны кто в Си# разбирется, обьясните как между формами передавать значения.
Чтобы если я менял значение переменной в одной форме, менялось и в другой:|

если две формы используют одни и те же свойства, целесообразно эти свойства поместить в отдельный класс например
хотя для разных задач используются разные методы
очень удобно использовать датамодели
опиши задачу свою

Да задачи как таковой нет. Я сам изучаю язык по книжкам.

Надо к примеру в Form1 в листбоксе выбрать значение и установить его для переменной i в Form2.

diskursmonger 12 февраля 2010 22:55

ну по разному можно
самый простой способ передать ссылку на переменную static i в Form2

в Form1 создай метод:
public static int geti()
{
return i;
}

в Form2 объяви переменную:
static int i = Form1.geti();

и из Form2 ты сможеш выполнять операции над переменной в обеих формах

Космонаут 13 февраля 2010 08:52

Цитата:

Цитата от frolkin (Сообщение 1069256444)
ну по разному можно
самый простой способ передать ссылку на переменную static i в Form2

в Form1 создай метод:
public static int geti()
{
return i;
}

в Form2 объяви переменную:
static int i = Form1.geti();

и из Form2 ты сможеш выполнять операции над переменной в обеих формах

Йоу, попробуем. Спасибо:horosho:

Таяпантабули 26 марта 2010 09:04

ассемблером балуется кто?:)

Cutthroat 26 марта 2010 09:08

уже добаловались!:D

Таяпантабули 26 марта 2010 09:14

а мне снова курсач надо по нему писать:)и экзамен снова сдавать:)

Cutthroat 26 марта 2010 09:19

Цитата:

Цитата от CARBO (Сообщение 1069652557)
а мне снова курсач надо по нему писать:)и экзамен снова сдавать:)

а вот ето те не повезло!

Таяпантабули 26 марта 2010 09:21

Цитата:

Цитата от Cutthroat (Сообщение 1069652580)
Цитата:

Цитата от CARBO (Сообщение 1069652557)
а мне снова курсач надо по нему писать:)и экзамен снова сдавать:)

а вот ето те не повезло!

конечно не повезло:)
снова все осваивать:)


Часовой пояс GMT +3, время: 11:01.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.

vBulletin Optimisation provided by vB Optimise (Pro) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.