Pascal: Questions on Variables, Arrays & Booleans

  • Thread starter Thread starter C0nfused
  • Start date Start date
  • Tags Tags
    Pascal
AI Thread Summary
A variable in Pascal is defined as a named memory location used to store data, and its value can be retrieved by using the variable's name in expressions. For example, in the expression (3*x + 5), the program evaluates it by using the current value of the integer variable x. Boolean variables can be used directly in conditional statements, such as "if check then" or "while check do," and these are equivalent to using explicit comparisons like "check = true." Each element of an integer array, such as ar[1] or ar[2], functions like a simple integer variable, allowing them to be passed as parameters to procedures. The discussion clarifies that as long as the types match, array elements can be used in procedure calls, with the var prefix indicating that the parameter can be modified.
C0nfused
Messages
139
Reaction score
0
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:
Computer science news on Phys.org
Very late reply in case others have similar questions...
C0nfused said:
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.
 
Sorry if 'Profile Badge' is not the correct term. I have an MS 365 subscription and I've noticed on my Word documents the small circle with my initials in it is sometimes different in colour document to document (it's the circle at the top right of the doc, that, when you hover over it it tells you you're signed in; if you click on it you get a bit more info). Last night I had four docs with a red circle, one with blue. When I closed the blue and opened it again it was red. Today I have 3...
Thread 'ChatGPT Examples, Good and Bad'
I've been experimenting with ChatGPT. Some results are good, some very very bad. I think examples can help expose the properties of this AI. Maybe you can post some of your favorite examples and tell us what they reveal about the properties of this AI. (I had problems with copy/paste of text and formatting, so I'm posting my examples as screen shots. That is a promising start. :smile: But then I provided values V=1, R1=1, R2=2, R3=3 and asked for the value of I. At first, it said...

Similar threads

Back
Top