Pascal question2

  • Thread starter C0nfused
  • Start date
Hi everybody,
Probably some easy questions in pascal:1) what exactly is a variable?Is it just a "place" to store data? And how do we retrieve this data from variables? When we write a variable's name in an expression the value of the variable is used in this expression?For example when we have an integer variable named "x" then when we write (3*x+5) the pc retrieves the value of x and uses it to calculate the value of the expression? So the name of the variable "represents" its value?

2) When we have a boolean type variable, named for example "check" are we allowed to use it in the following way: " if check then <statement1> else <statement2> " or like this :
" while check do <statement3> " ? In these cases the variable is like a boolean expression whose value(true/false) is the value of the boolean type variable? So the above examples are the same as these:
" if (check=true) then <statement1> else <statement2> " and
" while (check=true) do <statement3> " ?
This also applies when we write "(not check")?This is the same as (check=false) ? Generally writing " check and test" (where test is another boolean type variable) is like writing "((check=true) and (test=true))" ? They are all considered boolean expressions?
And one thing about arrays: when we use an array [1..10] of integer for example named "ar" then each cell of the array(ar[1],ar[2] etc) is exactly the same as a simple integer variable? So if we have a procedure that uses a variable parameter and a value parameter, for example
" procedure sum(a:integer;var b:integer); etc " then we can call it in the main body of the porgram using two of the cells of the array as real parameters of the procedure? For example we can make this call of the above procedure: " sum(ar[1],ar[2+3]) ? This applies to any kind of arrays that have the same type of values( integer,real etc) with the type of the parameters of the procedure?

Thanks
 
Last edited:
32,344
4,130
Very late reply in case others have similar questions...
Hi everybody,
Probably some easy questions in pascal:1) what exactly is a variable?Is it just a "place" to store data?
Pretty much. I like to define a variable as a memory location that is named. The actual size of the memory depends on the type used when the variable is declared.
C0nfused said:
And how do we retrieve this data from variables? When we write a variable's name in an expression the value of the variable is used in this expression?
Yes.
C0nfused said:
For example when we have an integer variable named "x" then when we write (3*x+5) the pc retrieves the value of x and uses it to calculate the value of the expression?
The program code evaluates the expression 3*x + 5 by using the current value of x.
C0nfused said:
So the name of the variable "represents" its value?
Yes
C0nfused said:
2) When we have a boolean type variable, named for example "check" are we allowed to use it in the following way: " if check then <statement1> else <statement2> " or like this :
" while check do <statement3> " ? In these cases the variable is like a boolean expression whose value(true/false) is the value of the boolean type variable? So the above examples are the same as these:
" if (check=true) then <statement1> else <statement2> " and
" while (check=true) do <statement3> " ?
It's been a very long time since I wrote any Pascal code, but I believe that all of what you wrote is mostly correct. One difference between Pascal and languages derived from C is that Pascal uses = for comparison and := for assignment, which C etc. use == for comparison and = for assignment.
The only thing I see wrong is "while check do ...". This should be "while (check) do ..."
C0nfused said:
This also applies when we write "(not check")?This is the same as (check=false) ? Generally writing " check and test" (where test is another boolean type variable) is like writing "((check=true) and (test=true))" ? They are all considered boolean expressions?
Yes. If check is a Boolean variable, then check = false is a Boolean expression that could be true or false, depending on the value of check.
C0nfused said:
And one thing about arrays: when we use an array [1..10] of integer for example named "ar" then each cell of the array(ar[1],ar[2] etc) is exactly the same as a simple integer variable?
Yes, assuming that the type of the array is integer. In that case, each cell of the array is an integer.
C0nfused said:
So if we have a procedure that uses a variable parameter and a value parameter, for example
" procedure sum(a:integer;var b:integer); etc " then we can call it in the main body of the porgram using two of the cells of the array as real parameters of the procedure? For example we can make this call of the above procedure: " sum(ar[1],ar[2+3]) ? This applies to any kind of arrays that have the same type of values( integer,real etc) with the type of the parameters of the procedure?
Yes. As long as the actual arguments (ar[1] and ar[5]) are the right type, they would match the formal parameters, both of which are type integer. Keep in mind though, that the var prefix suggests that the second parameter is an "out" parameter, and can have its value changed.
 

Want to reply to this thread?

"Pascal question2" You must log in or register to reply here.

Physics Forums Values

We Value Quality
• Topics based on mainstream science
• Proper English grammar and spelling
We Value Civility
• Positive and compassionate attitudes
• Patience while debating
We Value Productivity
• Disciplined to remain on-topic
• Recognition of own weaknesses
• Solo and co-op problem solving
Top