Sākumlapa › Forumi › Citas tēmas › Viss pārējais › Kā uzģenerēt skaitli (gadadienu) no 0 – 365, lai izvada datumu
Ja kāds varētu man šo programmu uzrakstīt, noteikti nepaliktu parādā, jo ļoti steidzami vajag, bet programmēšana nav mana stiprā puse + veselības problēmas, bet skolotājai jau po.. uz to visu
Paņem uztaisi mainīgo “diena” hotj intiger..
Tad iedod viņam vērtību randomā.. diena:=Random(365);
un tad ja uzdevuma kvalitāte nav tik svarīga kā dabūt laukā tieši datumu..
IF diena < 31 THEN menesis: = janvaris; datums: = diena – 31; un taa visus 12 meeneshus.. 😀 Bet vienu gan es īsti nesaprotu, tas domāts tikai no garā vai īsā gada? 🙂 Laikam jau garā. 🙂
Ä€tri iegooglēju un atradu dažus pseidokodus, viens pat izskatījās noderīgs 😉
Pats uzrakstītu, bet pascal ir pilnībā aizmirsies 🙂
program dayofyr;
var
i, day: integer;
const
// Number of days in each month
ndays: array[0..11] of integer = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
// Name of each month
months: array[0..11] of string = (’Jan’, ‘Feb’, ‘Mar’, ‘Apr’, ‘Mai’, ‘Jun’, ‘Jul’, ‘Aug’, ‘Sep’, ‘Oct’, ‘Nov’, ‘Dec’);
begin
Randomize;
// Works for non-leap year only!
day := Random(365) + 1;
WriteLn(’Random number: ‘, day);
// For each month
for i := 0 to 11 do
begin
// If random number is larger than days in the current month
if day > ndays[i] then
// Subtract that number and try the next month
day := day – ndays[i]
else
begin
WriteLn(’The date is: ‘, months[i], ‘ ‘, day);
break;
end;
end;
ReadLn;
end.
Fiksais piegdienas variants. Lai gan diez vai jēdzīgāk varētu, jo programmēšana pamazām tiek veiksmīgi aizmirsta. Turbopālis arī man nav, ar ko pārbaudīt, bet vajadzētu iet.
Un tas ir ar parasto gadu. Garajam gadam būs pāris nesmuku if
Pārtulko no angļu (jo latviski rakstītu kodu ienīstu principā) un arī būsi kaut ko izdarījis :>
Viens bet: Ja gada skaitlis dalās ar 100, bet ne ar 400, tad arī nav garais. 2000 bija, 2100, 2200 un 2300 nebūs garie, lai gan ar 4 dalās.
Preses relīzes