Да видим кой как програмира (pascal)

На братчеда на леля му на зетя й брат му се жени, не мога да избера с какъв цвят обувки да ходя на сватбата?? Помагайте!

Модератор: Общи модератори

старши ентусиаст
Аватар
Мнения: 1908
Регистриран на: 29.12.2005
Местоположение: Велико Търново
Пол: Мъж
Кара: М4

Да видим кой как програмира (pascal)

Мнение от DanielzZz » 12 Мар 2008, 9:29

Абе пичове правя си една програмка,обаче съм направил да изписва съобщение ако искате еди какво си въведете y,а ако не - n.

отгоре в променливите съм писал :
var n:char

след съобщението(writeln ('еди какво си...');)
съм писал
readln (n)
if (n)='y' then writeln ('еди какво си');
if (n)='n' then writeln ('друго нещо');

но след като въведа променливата нищо не става (става inactive прозореца).
Става дума за паскал под уин (bpw).

ентусиаст
Аватар
Мнения: 861
Регистриран на: 21.11.2007
Местоположение: София
Кара: AUDI S6

Мнение от bmwmania » 12 Мар 2008, 10:17

Лелееее, това кат малък съм го учил и е УЖАС ама ако не бързаш ще си издиря тетрадките и ще ти помогна ако мога :roll: .......
Изображение

старши ентусиаст
Аватар
Мнения: 1908
Регистриран на: 29.12.2005
Местоположение: Велико Търново
Пол: Мъж
Кара: М4

Мнение от DanielzZz » 12 Мар 2008, 10:28

Не,не бързам.Ама няма нужда да се ровиш за едно дребно нещо.По-добре ще е ако някой програмист види темата,че грешката е малка,а debugger-a е "умен",иначе вярно,че е "приятен" и "модерен" паскала.
Аз до 12ти клас ще уча само Pascal и Delphi(демек най-изостаналите езици).Няма да се учудя ако ни карат и Basic да учим :mhihi:

ентусиаст
Аватар
Мнения: 1438
Регистриран на: 18.01.2007
Пол: Мъж
Кара: E39 535i '01
Мечтае да кара: Mки, Ферарита и други глупости :)

Мнение от Feanor » 12 Мар 2008, 10:54

Програмистите на паскал не пишем, щото той е за начинаещи. :mhihi:
Иначе:
1. Изкарай променливата на екрана, да видиш какво точно си въвел и защо не зацепват if-овете.
2. Сложи един readln накрая, да не е твърде умно нещото и да прави прозореца inactive като приключи програмата, без да го ъпдейтва. :)
"Nothing gives one person so much advantage over another as to remain always cool and unruffled under all circumstances"

старши ентусиаст
Аватар
Мнения: 1908
Регистриран на: 29.12.2005
Местоположение: Велико Търново
Пол: Мъж
Кара: М4

Мнение от DanielzZz » 12 Мар 2008, 11:22

Ето ти сорса направо (не гледай кво пише в writeln):
Код: Избери целия код
program diskriminanta;
uses wincrt;
var a,b,c:real;
    ch:char;
begin;
writeln ('Òàçè ïðîãðàìà ìîæå äà èç÷èñëè Âàøàòà äèñêðèìèíàíòà');
writeln ('Ìîëÿ,âúâåäåòå 1âî ÷èñëî');
read (a);
writeln ('Ìîëÿ,âúâåäåòå âòîðî ÷èñëî');
read (b);
writeln ('Ìîëÿ,âúâåäåòå òðåòî ÷èñëî');
read (c);
writeln ('Âàøàòà äèñêðèìèíàíòà å:',(sqr(b)-4*a*c):6:20);
if (sqr(b)-4*a*c)<0 then
writeln ('Íÿìà ðåàëíè êîðåíè');
if (sqr(b)-4*a*c)=0 then
writeln ('Èñêàòå ëè äà èç÷èñëÿ êîðåíúò íà ó-íèåòî ? (Y çà ÄÀ,N çà ÍÅ)');
if (sqr(b)-4*a*c)>0 then
writeln ('Èñêàòå ëè äà èç÷èñëÿ êîðåíèòå íà ó-íèåòî? (Y çà ÄÀ,N çà ÍÅ)');
readln (ch);
if (ch)='y' then writeln ('edi kakvo si');
if (ch)='n' then writeln ('sgdgr');
end.

ентусиаст
Аватар
Мнения: 1438
Регистриран на: 18.01.2007
Пол: Мъж
Кара: E39 535i '01
Мечтае да кара: Mки, Ферарита и други глупости :)

Мнение от Feanor » 12 Мар 2008, 11:25

Тъй де, преди двата if-a в края, турни едно writeln(ch). За да не зацепват, най-вероятната причина е, че ch не е нито 'y', нито 'n'. :)
"Nothing gives one person so much advantage over another as to remain always cool and unruffled under all circumstances"

кандидат ентусиаст
Аватар
Мнения: 207
Регистриран на: 14.03.2007
Местоположение: София

Мнение от Tech0 » 12 Мар 2008, 11:29

Опа, така, така, програмистите сме на всеки километър ;)
БМВ е религия чада мои ,споменаването на Марката до марки като фиат и др кокошарници е обидно ! карайте си там недозавиващите балонообразни бавнооборотни автомобилчета чието задвижване е на неправилните колела ,оставете ни нас балъците каращи 8-10 годишни БМВ-та на цената на 3 фиата

I ride across town on my black boomer
‘Cause I’ve got a black boomer, it is always with me
‘Cause I’ve got a black boomer, fast and wild
‘Cause I’ve got a black boomer, such a lively boomer
Take seat, don’t hesitate girl, let’s go for a ride

старши ентусиаст
Аватар
Мнения: 1908
Регистриран на: 29.12.2005
Местоположение: Велико Търново
Пол: Мъж
Кара: М4

Мнение от DanielzZz » 12 Мар 2008, 11:38

Пак същата работа. :help:

ентусиаст
Аватар
Мнения: 1438
Регистриран на: 18.01.2007
Пол: Мъж
Кара: E39 535i '01
Мечтае да кара: Mки, Ферарита и други глупости :)

Мнение от Feanor » 12 Мар 2008, 11:42

Че ще е същата работа е ясно, ама кажи какво принти тоя writeln. :)
"Nothing gives one person so much advantage over another as to remain always cool and unruffled under all circumstances"

старши ентусиаст
Аватар
Мнения: 1908
Регистриран на: 29.12.2005
Местоположение: Велико Търново
Пол: Мъж
Кара: М4

Мнение от DanielzZz » 12 Мар 2008, 11:43

Нищо не принти.Абсолютно същото става.Въвеждам y/n и до там.
Нали writeln преди if-овете и след readln.

ентусиаст
Аватар
Мнения: 1438
Регистриран на: 18.01.2007
Пол: Мъж
Кара: E39 535i '01
Мечтае да кара: Mки, Ферарита и други глупости :)

Мнение от Feanor » 12 Мар 2008, 11:58

Мда. Сложи тогава един readln в самия край, след if-овете, за да не излиза, докато не натиснеш Enter пак. И кажи какво става.
"Nothing gives one person so much advantage over another as to remain always cool and unruffled under all circumstances"

старши ентусиаст
Аватар
Мнения: 1908
Регистриран на: 29.12.2005
Местоположение: Велико Търново
Пол: Мъж
Кара: М4

Мнение от DanielzZz » 12 Мар 2008, 12:01

Сега след като въведа y/n пък излиза празен ред :lol:
бах тоз пискюл

ентусиаст
Аватар
Мнения: 1438
Регистриран на: 18.01.2007
Пол: Мъж
Кара: E39 535i '01
Мечтае да кара: Mки, Ферарита и други глупости :)

Мнение от Feanor » 12 Мар 2008, 12:26

Мммм, хитро... да не би ch да взима стойността на последния символ (т.е. кодът на Enter)? Пробвай да го четеш с read вместо readln или да го направиш string. В краен случай прочети в хелпа какво пише за read/readln, щото аз категорично не си спомням. :)
"Nothing gives one person so much advantage over another as to remain always cool and unruffled under all circumstances"

старши ентусиаст
Аватар
Мнения: 1908
Регистриран на: 29.12.2005
Местоположение: Велико Търново
Пол: Мъж
Кара: М4

Мнение от DanielzZz » 12 Мар 2008, 12:40

Като е само read става инактив след като се изпише wirteln.
Това което искам да направя е следното:


Ако искате да продължите въведете Y,а ако не въведете N.

ентусиаст
Аватар
Мнения: 1438
Регистриран на: 18.01.2007
Пол: Мъж
Кара: E39 535i '01
Мечтае да кара: Mки, Ферарита и други глупости :)

Мнение от Feanor » 12 Мар 2008, 13:13

Ясно ми е какво искаш да направиш, но по някаква причина не си взимаш правилно отговора. Намери еквивалента на C-функцията getch() и го използвай него.
"Nothing gives one person so much advantage over another as to remain always cool and unruffled under all circumstances"

Следваща

Назад към Извън Темата

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани

Последни теми
Facebook