PDA

Просмотр полной версии : Вопрос по паскаль


toross
16.05.2009, 13:06
Помогите на счет задачи на паскале.

Выводит времЯ года по введеному с клавиатуры числу, выходи при нажатии 0.

SimBa
16.05.2009, 13:08
курс 10класса?=)

toross
16.05.2009, 13:12
ДА

X-FRITS
16.05.2009, 13:21
дай пример, непонимаю до конца условие.
что за "времЯ года по введеному с клавиатуры числу"??

PHOEN_i_X
16.05.2009, 13:27
Выводит времЯ года по введеному с клавиатуры числу ?

непонятно

D1mOn
16.05.2009, 13:46
21.04.2009 - Весна
30.08.2009 - Лето
01.11.2009 - Осень
10.01.2009 - Зима

свитч месяц
кейс 3,4,5
врителайн Весна
кейс 6.7.8
врителайн Лето
кейс 9,10,11
врителайн Осень
кейс 12,1,2
врителайн Зима

:D:D:D
Наводку дал, дальше сам думай))

banana
16.05.2009, 14:23
Выйти при нажатии на 0 - это until press '0' как то так.
Времена года:
Простейший способ через условия -

Program vrem_goda;
uses crt;
var mesyac,temp : integer;
begin
clrscr;
writeln ('Введите месяц: ');
readln (mesyac);
if mesyac=1 then
writeln (mesyac, ' месяц - это зима');
if mesyac=2 then
writeln (mesyac, ' месяц - это зима');
if mesyac=3 then
writeln (mesyac, ' месяц - это весна');
if mesyac=4 then
writeln (mesyac, ' месяц - это весна');
if mesyac=5 then
writeln (mesyac, ' месяц - это весна');
if mesyac=6 then
writeln (mesyac, ' месяц - это лето');
if mesyac=7 then
writeln (mesyac, ' месяц - это лето');
if mesyac=8 then
writeln (mesyac, ' месяц - это лето');
if mesyac=9 then
writeln (mesyac, ' месяц - это осень');
if mesyac=10 then
writeln (mesyac, ' месяц - это осень');
if mesyac=11 then
writeln (mesyac, ' месяц - это осень');
if mesyac=12 then
writeln (mesyac, ' месяц - это зима');
end.

Sinay
16.05.2009, 16:24
case of and while true

fatalo
16.05.2009, 18:42
mesyac , writeln ('Введите текущий месяц'): readln ($mesyac);
и делаешь условие. if $mesyac= 3 to 5 then writeln ($mesyac, ' месяц - это Весна') и т.д.
Это что за синтаксис?Смесь языков? :))

banana
16.05.2009, 22:24
Это что за синтаксис?Смесь языков? :))
Омг, точн это же на пыхапе такие условия и переменные, ща на паскаль поправлю

Sinay
16.05.2009, 22:43
плохо оформил
оператором выбора надо и у тебя он работает один раз,надо пока не нажмут 0
программисты=\

Godfather Bulan
16.05.2009, 22:44
Выйти при нажатии на 0 - это until press '0' как то так.
Времена года:
Простейший способ через условия -

Program vrem_goda;
uses crt;
var mesyac,temp : integer;
begin
clrscr;
writeln ('Введите месяц: ');
readln (mesyac);
if mesyac=1 then
writeln (mesyac, ' месяц - это зима');
if mesyac=2 then
writeln (mesyac, ' месяц - это зима');
if mesyac=3 then
writeln (mesyac, ' месяц - это весна');
if mesyac=4 then
writeln (mesyac, ' месяц - это весна');
if mesyac=5 then
writeln (mesyac, ' месяц - это весна');
if mesyac=6 then
writeln (mesyac, ' месяц - это лето');
if mesyac=7 then
writeln (mesyac, ' месяц - это лето');
if mesyac=8 then
writeln (mesyac, ' месяц - это лето');
if mesyac=9 then
writeln (mesyac, ' месяц - это осень');
if mesyac=10 then
writeln (mesyac, ' месяц - это осень');
if mesyac=11 then
writeln (mesyac, ' месяц - это осень');
if mesyac=12 then
writeln (mesyac, ' месяц - это зима');
end.
пиндец.... ну и код)))

Ponchik
16.05.2009, 22:54
Godfather Bulan, а в паскале нет switch =\
Можно былобы массивами сделать но в 10 классе хз проходят их или нет

rushter
16.05.2009, 23:01
Ponchik,
считываешь дату в формате каомнить типа день/месяц/год
отделяеш месяц от всего что введено вереподишь его в integer и делаешь
case i of
3..5: writeln("весна");
6..8:writeln("лето");
9..11:writeln("осень");
12,1,2:writeln("зима");
end;

Godfather Bulan
16.05.2009, 23:29
program asd;
const
a:array [1..12] of string[10]=('zima','zima','vesna','vesna','vesna','leto','le to','leto','osen','osen','osen','zima');
var
i:byte;
begin
readln (i);
writeln (a[i]);
readln;
end.

Sinay
16.05.2009, 23:45
памяти больше жрет

][yZ
17.05.2009, 07:42
program asd;
const
a:array [1..12] of string[10]=('zima','zima','vesna','vesna','vesna','leto','le to','leto','osen','osen','osen','zima');
var
i:byte;
begin
readln (i);
writeln (a[i]);
readln;
end.

тогда уж лучше так
program asd;
const
a:array [0..12] of string[10]=('','zima','zima','vesna','vesna','vesna','leto', 'leto','leto','osen','osen','osen','zima');
var
i:byte;
begin
repeat
readln (i);
writeln (a[i]);
until i=0;
readln;
end.

TRX.new
17.05.2009, 14:13
Такая задача.. а вы такую дискуссию развели =) .. Он сделал уже наверно .. в 10 классе врятли будут оценивать объем используемой памяти) .. Там смотрят работает/не работает ;-)))

P.S. еще надо фильтр на вводимые данные хоть как добавить и защиту от переполнения стека.. :rolleyes: