Welcome to My First Post!
This is my first post. I’m so excited to share my thoughts with you. I hope you enjoy reading it as much as I enjoyed writing it.
Some pascal code:
{
PROGRAM BarCharts
This program generates a bar chart based on user input.
}
PROGRAM BarCharts;
TYPE
barNumbers = 1..40;
numberOfPoints = 1..10;
barChartData = ARRAY [barNumbers] OF numberOfPoints;
{
FUNCTION Max
Finds the maximum value in the given bar chart data.
PARAMETERS:
data: The bar chart data array.
n: The number of data points to consider.
RETURNS:
The maximum value found in the data array.
}
FUNCTION Max(data: barChartData; n: INTEGER): numberOfPoints;
VAR
i: barNumbers;
MaxNumber: numberOfPoints;
BEGIN
MaxNumber := Low(barNumbers);
FOR i := 1 TO n DO
IF data[i] > MaxNumber THEN
MaxNumber := data[i];
Max := MaxNumber;
END;
{
PROCEDURE BarChart
Generates and displays a bar chart based on the given data.
PARAMETERS:
ch: The character to use for the bars.
n: The number of data points.
data: The bar chart data array.
}
PROCEDURE BarChart(ch: CHAR; n: INTEGER; data: barChartData);
VAR
rows: 0..High(numberOfPoints);
columns: barNumbers;
BEGIN
WriteLn;
// Main part
rows := Max(data, n);
WHILE rows > 0 DO
BEGIN
IF rows >= 10 THEN
Write(rows, '|')
ELSE
Write(' ', rows, '|');
FOR columns := 1 TO n DO
BEGIN
IF data[columns] >= rows THEN
BEGIN
IF columns > 9 THEN
Write(' ');
Write(' ', ch)
END
ELSE
BEGIN
IF columns > 9 THEN
Write(' ');
Write(' ')
END
END;
WriteLn;
rows := rows - 1;
END;
// Footer part +-
Write(' +');
FOR columns := 1 TO n DO
BEGIN
IF columns > 9 THEN
Write('-');
Write('--');
END;
WriteLn;
// Footer part 1..n
Write(' ');
FOR columns := 1 TO n DO
BEGIN
Write(' ', columns);
END;
END;
VAR
i, n: INTEGER;
data: barChartData;
c: CHAR;
BEGIN
Write('ch: '); Read(c);
Write('n: '); Read(n);
Write('data: ');
FOR i := 1 TO n DO
Read(data[i]);
BarChart(c, n, data);
END.