Please note, this is a STATIC archive of website www.tutorialspoint.com from 11 May 2019, cach3.com does not collect or store any user information, there is no "phishing" involved.
program EventsCalendar;
type
event = class
public
name, day, startTime, endTime: string;
constructor create (n, d, st, et: string);
end;
constructor event.create(n, d, st, et: string);
begin
name := n;
day := d;
startTime := st;
endTime := et;
end;
var
mode, eventName, eventDay, eventStartTime, eventEndTime, searchDay: string;
events: array of event;
function checkEvent () : boolean;
var
eventsPos: integer;
clashFound: boolean;
begin
clashFound := false;
for eventsPos := 0 to length(events) - 1 do
begin
if (events[eventsPos].day = eventDay) and (((eventStartTime > events[eventsPos].startTime) and (eventStartTime < events[eventsPos].endTime)) or ((eventEndTime > events[eventsPos].startTime) and (eventEndTime < events[eventsPos].endTime)) or ((events[eventsPos].startTime > eventStartTime) and (events[eventsPos].startTime < eventEndTime))) then
begin
writeln('Event clashes with: ', events[eventsPos].name);
clashFound := true;
end;
end;
if clashFound then
checkEvent := false
else
checkEvent := true;
end;
procedure deleteEvent ();
var
eventsPos, eventShiftCounter: integer;
eventFound: boolean;
begin
eventFound := false;
for eventsPos := 0 to length(events) - 1 do
begin
if (events[eventsPos].name = eventName) and (events[eventsPos].day = eventDay) and (events[eventsPos].startTime = eventStartTime) and (events[eventsPos].endTime = eventEndTime) then
begin
if eventsPos <> length(events) - 1 then
begin
for eventShiftCounter := eventsPos to length(events) - 2 do
events[eventShiftCounter] := events[eventShiftCounter + 1];
end;
setlength(events, length(events) - 1);
writeln('Event deleted!');
eventFound := true;
break;
end;
end;
end;
procedure viewEvents ();
var
eventsPos: integer;
eventFound: boolean;
begin
eventFound := false;
writeln('Events:');
for eventsPos := 0 to length(events) - 1 do
begin
if events[eventsPos].day = searchDay then
begin
writeln(events[eventsPos].name, ' from ', events[eventsPos].startTime, ' to ', events[eventsPos].endTime);
eventFound := true;
end;
end;
if not eventFound then
writeln('No events on ', searchDay, '!');
end;
begin
while true do
begin
writeln('Would you like to enter a new event (1), delete an event (2) or view events (3)?');
readln(mode);
if mode = '1' then
begin
writeln('What is the name of the event?');
readln(eventName);
writeln('What day is the event (DD/MM/YYYY)?');
readln(eventDay);
writeln('What time does the event start (HHMM)?');
readln(eventStartTime);
writeln('What time does the event end (HHMM)?');
readln(eventEndTime);
if checkEvent() then
begin
setlength(events, length(events) + 1);
events[length(events) - 1] := event.create(eventName, eventDay, eventStartTime, eventEndTime);
writeln('Event added!');
end;
end
else if mode = '2' then
begin
writeln('What is the name of the event you want to delete?');
readln(eventName);
writeln('What day is the event you want to delete (DD/MM/YYYY)?');
readln(eventDay);
writeln('What time does the event you want to delete start (HHMM)?');
readln(eventStartTime);
writeln('What time does the event you want to delete end (HHMM)?');
readln(eventEndTime);
deleteEvent();
end
else if mode = '3' then
begin
writeln('What day would you like to view (DD/MM/YYYY/)?');
readln(searchDay);
viewEvents();
end;
end;
end.
Advertisements
We use cookies to provide and improve our services. By using our site, you consent to our Cookies Policy.
AcceptLearn more