Програмування в паскалі
- 22.10.14, 17:29
Допоможіть будь-ласка!
Потрібно розв'язати задачу в паскалі для літерних і логічних тапів данних. Задача: Для коледжу збудували новий гуртожиток на N кімнат. Закупили меблі чотирьох типів.
Літерні данні:
Ввести: Кількість рядків(Назви меблів), Кількість символів(Скорочення назв меблів).
Логічні дані: (Чи вистачить у всі кімнати столів та шаф).
Меблі: Шафи, ліжка, столи, тумбочки.
Буду вдячний за допомогу.
Питання закрите
1
Повернутися до відповідей
Etelion
17:41, 22.10.2014
давайте проще, які вхідні дані (напишість семпл)?
про вихідні дані ясно, там булівська змінна
далі неясно умова, якщо треба лише столи та шафи то навіщо тумбочки та ліжка? і скільки саме столів та шаф треба в 1 кімнату, далі неясно про кількість символів, точніше про скорочення, зовсім нічо не ясно
P.s. залізьте на якийсь контестер і гляньте як потрібно описувати задачі по програмуванню
Наруто74
1 17:44, 22.10.2014
Діло в тому, що це лабораторна робота, можу вам скинути фотографію. Я вже програмував в паскалі колись, але з літерними та логічними типами данних не працював. Фотографія підійде? Ви зможете мені допомогти?
Наруто74
2 17:45, 22.10.2014
А всі меблі написав для літерних типів.
Etelion
3 18:03, 22.10.2014 Відповідь на 1 от Наруто74
давно не згадував паскаля, напишу на псувдокоді, перекладете на паскаль, то не важко
///заголовок програми
int Count; //скільки меблів
int CountTable; //скільки столів
int CountWardrobe; //скільки шаф
int CountRoom; //скільки кімнат
string FurnitureName; //назвамеблі
зчитати Count;
while(count>0) //цикл в паскалі точно інший, але я зовсім не пам'ятаю як саме описується
{
зчитати FurnitureName;
if(FurnitureName = "шафа") //якщо шафа
CountWardrobe++; //збільшити на 1 в паскалі мабуть не працюватиме
if(FurnitureName = "стіл") //якщо стіл
CountTable++; //збільшити на 1
Count--; //зменшити на 1
}
if(CountRoom
Наруто74
4 18:05, 22.10.2014 Відповідь на 3 от Etelion
Тут потрібно застосовувати лише оператори вводу та виведення (writeln, readln). Але так як я не працював з літерними та логічними типами тому не знаю як.
Etelion
5 18:07, 22.10.2014 Відповідь на 3 от Etelion
if(CountRoom < = CountTable and CountRoom < = CountWardrobe)
вивести "вистачить"
else
вивести "посони є проблема"
вийшло щось більш сіподібне, загалом логіка зрозуміла, оператори умови і циклу перекладете, стрічки наче звичайними операторами умови в паскалі порівнюються, якщо щось не ясно то можу пояснити
Etelion
6 18:08, 22.10.2014 Відповідь на 4 от Наруто74
одним вводом виводом логіка ніколи не побудується
http://pas1.ru/inputoutput тут пояснено чутку про ввід вивід, якщо треба специфіка операторів
Наруто74
7 18:09, 22.10.2014 Відповідь на 5 от Etelion
Бажано що б ви мені розписали що потрібно вставити в програму, я розумію що це легко, але не можу зробити, так як ніколи з ними не працював. Цикл також не використовується, потрібно якось через присвоєння змінній.
Etelion
8 18:12, 22.10.2014 Відповідь на 7 от Наруто74
там і є присвоєння змінної
зчитати FurnitureName;
це означає
redline(FurnitureName);
це присвоїть змінній FurnitureName значення яке введуть з клавыатури
Etelion
9 18:13, 22.10.2014 Відповідь на 7 от Наруто74
без циклу ніяк не вийде, хіба через безумовний перехід та оператор умови
взагалі цикли та оператори умови це основа всього декларативного програмування
Наруто74
10 18:20, 22.10.2014 Відповідь на 9 от Etelion
Нам якось так пояснували.
log1,log2:boolean;
readln (log1,log2);
f:=log1