Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
123
36 / 0 / 1
Регистрация: 18.03.2015
Сообщений: 195

Встречено "type", а ожидался оператор

21.08.2018, 11:30. Показов 3228. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Где ошибка в описании типа?

Pascal
1
2
3
4
5
6
7
8
9
10
uses crt;
 
begin
type
card=(шестерка, семерка, восьмерка, девятка, десятка, валет, дама, король, туз);
 
var
card:=шестерка;
write(card);
end.
Если ставлю тип за главный цикл после uses то пишет "Внутриблочные переменные не могу иметь те же имена что и переменные из блока верхнего уровня".

Короче я понял что неправильно описываю тип переменной. А как это правильно сделать не пойму, вроде бы все гуглил...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.08.2018, 11:30
Ответы с готовыми решениями:

Встречено else, а ожидался оператор
Всем привет, проблема возникла. Встречено else, а ожидался оператор. Стандартная ситуация, дали код чужой, не могу понять, в чем...

Встречено 'uses', а ожидался оператор
Unit Unit1; interface uses System, System.Drawing, System.Windows.Forms; type Form1 = class(Form) procedure...

Встречено := а ожидался оператор
Встречено := а ожидался оператор: Условие: Дан массив заполненный по формуле cos(x/3), определить количество его положительных ...

13
 Аватар для kotAV
142 / 108 / 57
Регистрация: 15.09.2017
Сообщений: 425
21.08.2018, 13:35
Андрей1926, вот так
Pascal
1
2
3
4
5
6
7
8
9
10
uses crt;
 
type
  tcard=(шестерка, семерка, восьмерка, девятка, десятка, валет, дама, король, туз);
 
begin
  var
  card:=шестерка;
  write(card);
end.
Нельзя называть переменную именем типа. И типы внутри блока нельзя описывать.
1
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
21.08.2018, 13:39
Цитата Сообщение от Андрей1926 Посмотреть сообщение
Короче я понял что неправильно описываю тип переменной. А как это правильно сделать не пойму, вроде бы все гуглил...
Короче Вы не там гуглии.
Выучите структуру программы:
Pascal
1
2
3
4
5
6
program имя программы;
раздел uses
раздел описаний
begin
  операторы
end.
Раздел описаний может включать следующие подразделы:
раздел описания переменных
раздел описания констант
раздел описания типов
раздел описания меток
раздел описания процедур и функций
Данные подразделы следуют друг за другом в произвольном порядке.
Далее следует блок begin / end.
Миниатюры
Встречено "type", а ожидался оператор  
1
123
36 / 0 / 1
Регистрация: 18.03.2015
Сообщений: 195
22.08.2018, 13:50  [ТС]
Да спасибо видимо не там гуглил или там но не все.

Добавлено через 8 минут
Constantin Cat, а для goto label тоже описывать перед begin?

А да точно, прочитал.

Добавлено через 8 минут
А к переменным типа есть возможность доступа по индексу?
0
 Аватар для kotAV
142 / 108 / 57
Регистрация: 15.09.2017
Сообщений: 425
22.08.2018, 14:49
Цитата Сообщение от Андрей1926 Посмотреть сообщение
А к переменным типа есть возможность доступа по индексу?
Нет. Можно обращаться к константам типа как EnumType.Constant (TCard.шестерка)
Но они глобальны, хотя, если есть два перечислимых типа с одинаковой константой, то нет.

А вообще, Андрей1926, почитайте этот пост
1
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
22.08.2018, 20:07
Цитата Сообщение от kotAV Посмотреть сообщение
если есть два перечислимых типа с одинаковой константой
Это компилятор не примет.
1
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
22.08.2018, 20:46
Цитата Сообщение от Sun Serega Посмотреть сообщение
Сообщение от kotAV
если есть два перечислимых типа с одинаковой константой
Это компилятор не примет.
Цитата Сообщение от kotAV Посмотреть сообщение
Но они глобальны, хотя, если есть два перечислимых типа с одинаковой константой, то нет.
Вы хоть читали, вместе с запятыми саму фразу, или от знака препинания до знака?
0
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
22.08.2018, 20:57
А по моему "то нет" относится к "они глобальны".
0
 Аватар для kotAV
142 / 108 / 57
Регистрация: 15.09.2017
Сообщений: 425
22.08.2018, 23:05
Sun Serega, по правилам русского языка - да. И по тому, что имел ввиду я - тоже да.
Не знал, что компилятор не принимает такое
0
23.08.2018, 00:56

Не по теме:

Sun Serega, kotAV,

Цитата Сообщение от kotAV Посмотреть сообщение
Но они глобальны, хотя(смысл = Но, Есть Варианты, Кроме случая), если есть два перечислимых типа с одинаковой константой, то нет.
Вас спутало слово хотя

0
 Аватар для kotAV
142 / 108 / 57
Регистрация: 15.09.2017
Сообщений: 425
23.08.2018, 02:00
Constantin Cat, смысл-то в том, что
Цитата Сообщение от Sun Serega Посмотреть сообщение
Это компилятор не примет
А то, как я написал (а я написал правильно, исходя из своей точки зрения) - неверно.
Хотя жаль, что нельзя так делать.
А если точнее, так делать можно, прописывая enum-типы в модули (как с consolecolor)
0
123
36 / 0 / 1
Регистрация: 18.03.2015
Сообщений: 195
23.08.2018, 07:42  [ТС]
Тут пишет нельзя преобразовать тип к string. Там где присваиваю шестерку.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
uses crt;
 
var
card,mast: string;
cards: array [1..10] of integer;
masti: array [1..4] of integer;
 
type
  tcard=(шестерка, семерка, восьмерка, девятка, десятка, валет, дама, король, туз);
 
begin
if cards[1]=1 then
card:=шестерка;
writeln(card);
 
end.
Добавлено через 1 минуту
Почему нельзя присваивать переменной card значения переменных типа.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33187 / 21484 / 8232
Регистрация: 22.10.2011
Сообщений: 36,862
Записей в блоге: 12
23.08.2018, 11:56
Переменная card должна быть типа tcard, чтобы моно было делать то, что ты написал. При чем тут строки вообще к перечислимым типам?
1
123
36 / 0 / 1
Регистрация: 18.03.2015
Сообщений: 195
23.08.2018, 14:24  [ТС]
Вот правильный код.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
uses crt;
 
var;
cards: array [1..10] of integer;
masti: array [1..4] of integer;
 
type
  tcard=(шестерка, семерка, восьмерка, девятка, десятка, валет, дама, король, туз);
 
begin
cards[1]:=1;
if cards[1]=1 then
  begin
  var card: tcard;
  card:=шестерка;
  writeln(card);
 end;
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.08.2018, 14:24
Помогаю со студенческими работами здесь

Встречено array, а ожидался оператор
В 26 строке выдает ошибку. Program lab8_Smirnov_var10_2; uses crt; const n=3; m=4; var k,i,j:integer; a:array of integer; ...

Встречено 'procedure', а ожидался оператор
При попытке компиляции выдаёт: Встречено 'procedure', а ожидался оператор. Вроде все проверил, вроде все правильно. Подскажите, пожалуйста,...

Встречено 'procedure', а ожидался оператор
Встречено 'procedure', а ожидался оператор uses graphABC; var i: integer; KeyPressed: boolean; Procedure KeyDown(key:...

Встречено 'procedure', а ожидался оператор
program lab5; type arr=array of integer; const n=3; var a:arr; i1,j1,k1,sum:integer; m:boolean; procedure...

Встречено Procedure а ожидался оператор
var a: Array of longint; b, i, n, g: longint; begin Read(b, n, g); begin for i := 1 to 5 do


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru