program Console;
{$APPTYPE CONSOLE}
uses
SysUtils;
var NewCom:integer;
NewCOMM:string;//?
begin
writeln('AGG SDK',#10,'Version Alpha',#10);
while 1>0 do
begin
readln (NewCom);
readln (NewCOMM);
case NewCOMM of //?
No :writeln ('No'); //?
Yes :writeln ('Yes'); //?
else:writeln('Noo'); //?
end; //?
case NewCom of
1:writeln ('HELP - Vivodit vse dostupnie comandi');
2:writeln ('VER - Vivodit versiy AGG SDK i datu ustanovki');
3:writeln ('EXIT - Vixodit iz consoli');
4:writeln ('COLOR - Menyaet color consoli ');
5:writeln ('CLS - Ochihaet ecran');
//Железо
6:writeln ('CPU - Vivodit infu o CPU');
7:writeln ('GPU - Vivodit infu o GPU');
8:writeln ('VGA - Vivodit infu o VGA');
9:writeln ('RAM - Vivodit infu o RAM');
10:writeln ('HARD - Vividit infu o HDD & SSD');
11:writeln ('ROM - Vivodit infu o CD, DVD, Flopy privodax');
12:writeln ('TEMP - Vivodit infu o tempirature CPU, VGA, RAM, HDD');
13:writeln ('HARDWARE - Vivodit infu o HARDWARE - anologichno Systeminfo v MS DOS');
14:writeln ('LAN - Vivodit infu o setevix ustroystvax');
15:writeln ('FAN - Vivodit infu o culerax');
//Операционная система
16:writeln ('SYSTEM - Vivodit infu o OC');
17:writeln ('REGYSTRY - Otkrivaet regedit.exe');
18:writeln ('MANAGER - Otkrivaet taskman.exe');
19:writeln ('USER - Vivodit infu o polzovatelyax');
20:writeln ('MSDOS - Otkrivaet command.com');
21:writeln ('CLS - Ochihaet ecran');
22:writeln ('OPEN - Otkrivaet ukazaniy fayl');
//Сети
23:writeln ('IP - Vivodit svoi IP adresa');
24:writeln ('PING - Pinguet ukazaniy sait ili IP adres');
25:writeln ('NETWORK - Vivodit vse setevie ustroystva i podklycheniya');
26:writeln ('CONNECT - Podclychitsya k seti ili kompu');
end;
end;
readln;
end.
Другие языки программирования и технологии
Вопрос по Delphi найдите ошибку?
Можно примерно так сделать
uses
StrUtils;
...
const
cmdQuit = 'QUIT';
cmdLogin = 'LOGIN';
cmdPassword = 'PASSWORD';
cmdArray : Array [ 0..2 ] of String = ( cmdQuit, cmdLogin, cmdPassword );
begin
case AnsiIndexStr( 'medved', cmdArray ) of
0 : Beep;
1 : Beep;
2 : Beep;
else Beep;
end
end;
case работает только с перечислимыми типами.
А вообще, лучше сделать не
case NewCOMM of //?
No :writeln ('No'); //?
Yes :writeln ('Yes'); //?
else:writeln('Noo'); //?
end;
а
if (NewCOMM = 'No') or (NewCOMM = 'Yes') then writeln(NewCOMM) else
writeln('Noo');
uses
StrUtils;
...
const
cmdQuit = 'QUIT';
cmdLogin = 'LOGIN';
cmdPassword = 'PASSWORD';
cmdArray : Array [ 0..2 ] of String = ( cmdQuit, cmdLogin, cmdPassword );
begin
case AnsiIndexStr( 'medved', cmdArray ) of
0 : Beep;
1 : Beep;
2 : Beep;
else Beep;
end
end;
case работает только с перечислимыми типами.
А вообще, лучше сделать не
case NewCOMM of //?
No :writeln ('No'); //?
Yes :writeln ('Yes'); //?
else:writeln('Noo'); //?
end;
а
if (NewCOMM = 'No') or (NewCOMM = 'Yes') then writeln(NewCOMM) else
writeln('Noo');
Тебе же компилятор говорит, что в данном случае можно работать только с перечислимыми типами.
В оригинале выглядит вот так:
„The compiler required an ordinal type at this point. Ordinal types are the predefined types Integer, Char, WideChar, Boolean, and declared enumerated types.“
Переделай на условие, либо бери только первую букву переменной NewCOMM (не забыв сначала проверить строку на то, что она не пустая) :
if Length(NewCOMM) > 0 then
case NewCOMM[1] of
'N' :writeln ('No');
'Y' :writeln ('Yes');
else // После else двоеточие не ставится
writeln('Noo');
end
else // Пустая строка
writeln('Noo');
В оригинале выглядит вот так:
„The compiler required an ordinal type at this point. Ordinal types are the predefined types Integer, Char, WideChar, Boolean, and declared enumerated types.“
Переделай на условие, либо бери только первую букву переменной NewCOMM (не забыв сначала проверить строку на то, что она не пустая) :
if Length(NewCOMM) > 0 then
case NewCOMM[1] of
'N' :writeln ('No');
'Y' :writeln ('Yes');
else // После else двоеточие не ставится
writeln('Noo');
end
else // Пустая строка
writeln('Noo');
"не работает" или все же "не компилируется"? На будущее - если уж ищите причину ошибки, то хотя бы указывайте выдаваемое сообщение.
В данном случае, вероятно, проблема в том, что оператор CASE предполагает в качестве выражения выбора переменную порядкового типа: целое, перечисление, логические константы.
string - это не порядковый тип, поэтому конструкция синтаксически не правильная.
В данном случае, вероятно, проблема в том, что оператор CASE предполагает в качестве выражения выбора переменную порядкового типа: целое, перечисление, логические константы.
string - это не порядковый тип, поэтому конструкция синтаксически не правильная.
ну так то разницу то найди. Зачем допустим делаешь так No :writeln ('No'); //??
Качай офигенную для этого среду разработки и компилятор тебе все раскажет при запуске программы
Похожие вопросы
- Помогите найти ошибку Delphi легкая программка
- Delphi... Сложение чисел... Помогите найти ошибки...
- Несколько вопросов по Delphi
- вопрос по delphi
- Трудный вопрос по Delphi.
- Вопрос по Delphi Image
- Вопрос о Delphi ! См.Внутри !!!
- Вопросы по Delphi помогите... Кто что знает пишите .. Спасибо!!!
- Помогите пожалуйста найти ошибку, с++
- программирование C++. Помогите найти ошибку