Кто-нибудь может обьяснить что делает кусок кода поподробнее, по строчкам? class Screen {
HANDLE m_hStdout;
CONSOLE_CURSOR_INFO m_cursorInfo;
COORD m_screenSize;
DWORD m_screenBufSize;
DWORD m_consoleMode;
public:
Screen() {
m_hStdout = GetStdHandle(STD_ERROR_HANDLE);
GetConsoleCursorInfo(m_hStdout, &m_cursorInfo);
m_cursorInfo.bVisible = FALSE;
SetConsoleCursorInfo(m_hStdout, &m_cursorInfo);
CONSOLE_SCREEN_BUFFER_INFO csbi;
(m_hStdout, &csbi);
m_screenSize.X = csbi.srWindow.Right - csbi.srWindow.Left + 1;
m_screenSize.Y = csbi.srWindow.Bottom - csbi.srWindow.Top + 1;
m_screenBufSize = (DWORD)m_screenSize.X * m_screenSize.Y;
GetConsoleMode(m_hStdout, &m_consoleMode);
SetConsoleMode(m_hStdout, m_consoleMode | ENABLE_ECHO_INPUT);
}
~Screen() {
m_cursorInfo.bVisible = TRUE;
SetConsoleCursorInfo(m_hStdout, &m_cursorInfo);
SetConsoleMode(m_hStdout, m_consoleMode);
}
COORD getScreenSize() const { return m_screenSize; }
void out(const COORD &coord, char ch) {
SetConsoleCursorPosition(m_hStdout, coord);
DWORD chars_written;
WriteConsoleA(m_hStdout, &ch, DWORD(1), &chars_written, NULL);
}
void out_array(const char *buf, DWORD buflen) {
DWORD chars_written;
COORD coord{ 0,0 };
SetConsoleCursorPosition(m_hStdout, coord);
WriteConsoleA(m_hStdout, buf, buflen, &chars_written, NULL);
}
void cls() {
CONSOLE_SCREEN_BUFFER_INFO csbi;
COORD coordScreen = { 0, 0 };
DWORD cCharsWritten;
(m_hStdout, &csbi);
DWORD dwConSize = csbi.dwSize.X * csbi.dwSize.Y;
(m_hStdout, (TCHAR)' ', dwConSize, coordScreen, &cCharsWritten);
(m_hStdout, csbi.wAttributes, dwConSize, coordScreen, &cCharsWritten);
SetConsoleCursorPosition(m_hStdout, coordScreen);
}
};
Type
ty=array[1..25] of integer;
Var
n,i:integer;
ar:ty;
procedure sortbutmeh(var ar:ty;n:integer);
Var
i,j,c:integer;
begin
for i:=1 to n-1 do
for j:=i+1 to n do
if ar[i]<ar[j] then
begin
c:=ar[i];
ar[i]:=ar[j];
ar[j]:=c;
end;
end;
begin
randomize;
readln(n);
writeln('First array:');
for i:=1 to n do
begin
ar[i]:=random(100);
write(ar[i]:4);
end;
sortbutmeh(ar,n);
writeln;
writeln('Array after sortbutmeh()');
for i:=1 to n do
write(ar[i]:4);
end.
//2)
Var
n:integer;
procedure ned(n:integer);
begin
case n of
1:writeln('Понедельник');
2:writeln('Вторник');
3:writeln('Среда');
4:writeln('Четверг');
5:writeln('Пятница');
6:writeln('Суббота');
7:writeln('Воскресенье');
end;
end;
begin
readln(n);
ned(n);
end.
//3)
Var
s:string;
function lengthbutmeh(s:string):integer;
begin
while pos(' ',s)<>0 do
delete(s,pos(' ',s),1);
lengthbutmeh:=length(s);
end;
begin
readln(s);
writeln(lengthbutmeh(s));
end.