С++ На завод!
У Пети есть X граммов краски, а у Васи — Y граммов краски. Одного грамма краски хватает, чтобы покрасить плитку 1×1. На заводе есть неограниченное количество квадратных плиток любых размеров. Петя выберет максимальную плитку, на которую у него хватит краски. Вася поступит аналогично. Таня работает в плановом отделе, и в её интересах сделать так, чтобы суммарно было потрачено как можно больше краски. Поэтому Таня интересуется: а что если Петя отдаст всю свою краску Васе? Получится ли тогда потратить больше краски или нет?
В данной задаче запрещено использовать функцию sqrt, а также операцию возведения в степень.
1)
var
a:array[1..50]of real;
i,n:byte;
Sn:real;
begin
write('Введите количество элементов массива: ');readln(n);
for i:=1 to n do
begin
write('a[',i,']= '); readln(a[i]);
end;
clrscr;
writeln('Исходный массив:');
/* Вывод в строчку через запятую*/
for i:=1 to n-1 do write(a[i]:5:3,', '); write(a[n]:5:3,'.');
/*Простой вывод в столбик*/
for i:=1 to n do writeln(a[i]:5:3);
/*Сумма элементов, стоящих на четных местах*/
Sn:=0;
while i<=n do
begin
if odd(i)=false then Sn:=Sn+a[i];
i:=i+1;
end;
/*Вывод ответа*/
writeln('Сумма элементов, стоящих на четных местах: ',Sn:5:3);
end.
2)
var
a:array[1..50]of real;
i:byte;
begin
write('Введите количество элементов массива: ');readln(n);
for i:=1 to n do
begin
write('a[',i,']= '); readln(a[i]);
end;
clrscr;
writeln('Исходный массив:');
/* Вывод в строчку через запятую*/
for i:=1 to n-1 do write(a[i]:5:3,', '); write(a[n]:5:3,'.');
/*количество элементов кратных 3*/
kol:=0;
for i:=1 to n do
if a[i] mod 3 =0 then kol:=kol+1;
/*Вывод ответа*/
writeln('Количество элементов массива, кратных трем: ',kol);
end.
1. вывести на экран 6 раз своё имя
program imya;
const n=6;
var i:integer;
begin
for i:=1 to n do
writeln('ваше имя');
end.
Пояснения: делала с цикла (можно было написать и шесть раз writeln, но так удобнее). Переменную n ввела для быстрого изменения значений (если нужно будет написать имя не 6, а, к примеру, 8 раз, нужно было заменить только вначале). Ещё хочу отметить, что имя вводится по-английски и нельзя терять апострофы ( ' ).
2. program sum;
var sum:integer;
m:array[1..4] of integer;
i:integer;
begin
m[1]:=6
for i:=2 to 4 do begin
m[i]:=m[i-1]+1;
end;
sum:=m[1];
for i:=2 to 4 do begin
sum:=sum+m[i];
end;
writeln(sum);
end.
Пояснения: можно было делать и по-другому, но так тоже верно. Тут использовалось два цикла и массив. А блок-схему сами сделайте)))
3. program n!;
var n:real;
c:integer;
m:array[1..n] of integer;
begin
readln(n)
m[1]:=1;
for i:=2 to n do begin
m[i]:=m[i-1]+1;
end;
c:=m[1]
for i:=1 to n do begin
c:=c*m[i];
end;
writeln('n!',c);
end.
Если что не понятно, пишите, объясню