sizeof pascal



Pascal sizeof

Автор Дашуля ххх задал вопрос в разделе Другие языки и технологии

паскаль и получил лучший ответ

Ответ от Krab Bark[гуру]
var i,n:integer; p:real; a,b:array[1..100]of real;
begin
write('Введите размер массивов: '); readln(n);
writeln('Введите значения элементов первого массива, разделяя их пробелами');
for i:=1 to n do read(a[i]); readln;
writeln('Введите значения элементов второго массива, разделяя их пробелами');
for i:=1 to n do read(b[i]); readln;
p:=0; for i:=1 to n do p:=p+a[i]*b[i];
write(p); writeln;
writeln(‘Для выхода нажмите Enter’); readln
end.
Вообще-то в Pascal нет ничего сложного уже для второклассника. Это простенькая система обозначений для записи в строку математических действий и их последовательности.
P.S. paperrose, у тебя (надеюсь, можно на "ты") сломалось бы уже при 11 🙂 Но при желании можно поставить вместо 100 число 1000 - навряд ли кто-то будет вручную вводить две тысячи чисел. И при всём уважении, видимо, ты привык писать на других языках - у тебя в программе несколько синтаксических ошибок 🙁
А Дашуле следовало бы указывать, в каком "Паскале" - Turbo Pascal, Pascal ABC, PascalABC.NET, Free Pascal... Pascal - это семейство множества довольно разных языков.

Ответ от Paperrose[гуру]
const n = 10;
type
arr = array[1..n] of integer;
var
a: arr;
b: arr;
i: byte;
p: integer = 0;
begin
writeln('Введите значения массива a');
for i from 1 to n do readln(a[i]);
writeln();
writeln('Введите значения массива b');
for i from 1 to n do
begin
readln(b[i]);
p := p + a[i]*b[i];
end;
writeln('Ваш результат');
writeln(p);
readln();
end.
, а вдруг кто-то введет n > 100? все же сломается

Ответ от Андрей Киселев[новичек]
если ограничиваешь массив 100 элементами, совет: в начале добавить сообщенку типа:
writeln('prepod esle ty ne loh > 100 ne vvodi');
и прокатит 100 раз так делал ахаха

Ответ от Андрей Журавлев[гуру]
а что мешает задать размер массива уже при выполнении программы?. .
var a1, a2: array of integer;
i, size, res:integer;
begin
write('Укажите размер массивов: '); readln(size);
SetLength(a1,size);
writeln('Заполните массив а1: ');
for i:=0 to size-1 do begin
write('a1[',i,'] = '); readln(a1[i]);
end;
SetLength(a2,size);
writeln('Заполните массив а2: ');
for i:=0 to size-1 do begin
write('a2[',i,'] = '); readln(a2[i]);
end;
for i:=0 to size-1 do res:=res+a1[i]*a2[i];
writeln('Результат: ', res);
end.

Ответ от Профессор[гуру]
Андрей Журавлёв, в ТрубоПаскале нет функции SetLength. Поэтому твоя программа работать не будет. Надо написать что-то вроде этого:
program Project1;
Type pArray=^Tarray; TArray=array[0..100]of real;
var i,n:integer; p:real; a,b:pArray;
begin
repeat
write('Введите размер массивов: '); readln(n);
until (n>1)and(n<32000);
GetMem(a,n*Sizeof(real));
GetMem(b,n*Sizeof(real));
writeln('Введите значения элементов первого массива, разделяя их пробелами');
for i:=1 to n do read(a^[i]); readln;
writeln('Введите значения элементов второго массива, разделяя их пробелами');
for i:=1 to n do read(b^[i]); readln;
p:=0; for i:=1 to n do p:=p+a^[i]*b^[i];
write(p); writeln;
writeln('Для выхода нажмите Enter'); readln;
FreeMem(a,n*Sizeof(real));
FreeMem(b,n*Sizeof(real));
end.

Ответ от 22 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: паскаль
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*