Привет всем. Спасибо за помощь с предыдущими заданиями!))
Задала еще лабораторки
Объясните пожалуйста популярно, как это все делается?
P.S. на первой фотке задания с 1 по 3, на других фотках - только самое верхнее задание
Эскизы прикрепленных изображений
В том-то и дело, что не объясняют((( нам дают листок формата А4, на котором приведен всего 1 пример. И с помощь этого 1 примера мы должны сделать штук 5 других разных задач. Преподше главное пихнуть нам этот листок, а самой потом сидеть и со своими делами разбираться.
Учебников у нас тоже нет, мы "обучаемся" только по этим листочкам А4.
Вы мне ничего не должны. Я просто надеюсь на вашу помощь... Если нет - что ж, извините, наверное ошибся адресом...
Кому легкая, а кому нет...
Я попытался 3 сделать, только она у меня криво как-то выходит...
Program org;
Var a:array[1..20,1..20] of real;
i,j,m,n:integer;
mins,maxs,mini,maxi,t:real;
begin
writeln('input m,n:');
readln(m,n);
randomize;
for i:=1 to m do
for j:=1 to n do
a[i,j]:=random*100-50;
mins:=0;
for j:=1 to n do
mins:=mins+a[1,j];
maxs:=mins;
mini:=1;
maxi:=1;
for i:=2 to m do
begin
t:=0;
for j:=1 to n do
t:=t+a[i,j];
if (t>maxs) then
begin
maxs:=t;
maxi:=i;
end
else if (t<mins) then
begin
mins:=t;
mini:=i;
end;
end;
writeln ('Max summ= ',maxs:8:6,' ','stroki: ',maxi:8:6);
writeln ('Min summ= ',mins:8:6,' ','stroki: ',mini:8:6);
readln;
end.
Он числа рандомом не выводит...
Паскалевские теги - это в смысле выделять черным все эти команды, типа begin, if, then и т.д.?
Под ранодомом я понимаю то, чтобы он сам задавал числа в случайном порядке, а не чтобы их приходилось вводить собственноручно. Чтобы максимально оптимизировать и автоматизировать этот код. Так во-всяком случае это понимаю я. Может неправильно понимаю, т.к. как я уже говорил - нам толком ничего не объясняют...
Вот это и есть задание массива из случайных элементов.
for i:=1 to m do
for j:=1 to n do
a[i,j]:=random*100-50;
for i:=1 to m do
for j:=1 to n do
readln(a[i,j]);
т.е. я типа все правильно сделал?..
В 1-й задаче должно быть "массива А, удовлетворяющих условию -2<a[i]<2
...
k:=0;
sum:=0;
for i:=1 to n do
if (a[i]<2) and (a[i]>-2) then {выбираем только те элементы массива, которые удовл. условию}
begin
sum:=sum+a[i]; {Считаем их сумму...}
k:=k+1; {... и количество}
end;
sum:=sum/k; {средн. ариф-кое}
...
Ладно, с этой задачей разобрался. Помогите пожалуйста с другими? Направьте хотя бы, а то у меня даж идейй нету... Я в паскале не особо хорошо шарю, так что и понять мне немного сложнее...
Зад. 2.2
...
k:=0;
readln(n);
for i:=1 to n do
begin
readln(a); {вводим очередной элемент последовательности}
if (not odd(i)) {четный порядковый номер } and (odd(a)) {четный элемент } then
k:=k+1;
end;
...
подправьте пожалуйста, если что не так...)))
Program org;
const nn=10;
var a:array[1..nn] of real;
i,n,k:integer; s:real;
begin
writeln('input n:');
readln(n);
k:=0;
s:=1;
for i:=1 to n do
if (a[i]<2) and (a[i]>-2) then
begin
s:=s+a[i];
k:=k+1;
end;
s:=s/k;
writeln('s=',s:8:5);
readln;
end.
2.1
...
if (not odd(a)) {четное} and (frac(sqrt(a))=0) {квадрат числа} then
k:=k+1
...
s:=0; // !!!
s=0 к той, которую я просил подправить? Тогда он постоянно выводит 0!
Зад. 3.1
Удаление столбца/строки решалось. Ищи по форуму.
Добавлено через 2 мин.
for i:=1 to n do
a[i]:=random(какое_нибудь_число);
блин, в задачу 2.1 я все-таки не врубаюсь нифига...
(frac(sqrt(a))=0) {квадрат числа}
Люди, пожалуйста, напишите полный код к последним 2 задачам, а?.. Первую я полностью сделал с вашей помощью, а вот вторую и третью лабораторки вообще не врубаюсь... Пожалуйста...
подправьте пожалуйста 2.1 А то че-то не получается(((
Program org;
const nn=20; mm=20;
var a:array[1..nn,1..mm] of integer;
j,i,n,m,k:integer; s:real;
begin
writeln('input n,m:');
readln(n,m);
randomize;
for i:=1 to n do
begin
for j:=1 to m do
begin
s:=0;
k:=0;
readln(n);
for i:=1 to n do
begin
readln(a);
if (not odd(a)) and (frac(sqrt(a))=0) then
k:=k+1
end;
end;
writeln('s=',s:8:6);
end;
readln;
end.
Зачем тебе здесь M и N? У тебя по условию только N. И не надо делать циклы в циклах... Все проще:
constТолько добавь проверку, что введенное число N не больше 20, иначе будут проблемы...
maxn = 20;
var
i, n: integer;
a: array[1 .. maxn] of integer;
begin
readln(n);
for i := 1 to n do begin
writeln('a[', i, '] = '); readln(a[i]);
end;
for i := 1 to n do begin
if (frac(sqrt(a[i])) = 0) and (not odd(trunc(sqrt(a[i]))))
then write(a[i]:5);
end;
end.
Спасибо volvo.. Я очень вам всем благодарен!
Короче, преподша говорит, что мое творение - неверно. Она сказала, что кажется он строки не инициализирует, что ли...
вот код:
Program org;
Var a:array[1..20,1..20] of real;
i,j,m,n:integer;
mins,maxs,mini,maxi,t:real;
begin
writeln('input m,n:');
readln(m,n);
begin
randomize;
for i:=1 to m do
for j:=1 to n do
a[i,j]:=random*100-50;
mins:=0;
for j:=1 to n do
mins:=mins+a[1,j];
maxs:=mins;
mini:=1;
maxi:=1;
for i:=2 to m do
begin
t:=0;
for j:=1 to n do
t:=t+a[i,j];
if (t>maxs) then
begin
maxs:=t;
maxi:=i;
end
else if (t<mins) then
begin
mins:=t;
mini:=i;
end;
end;
writeln ('Max summ= ',maxs:8:6,'; ','stroki: ',maxi:2:0);
writeln ('Min summ= ',mins:8:6,'; ','stroki: ',mini:2:0);
readln;
end;
end.
М | Зачем начинать новую тему для той же задачи?.. Соединил. Лопарь |
for i:=1 to n do begin
b[i]:=1;
for j:=1 to n do if a[i,j]>0 then begin
b[i]:=a[i,j];
break
end
end;
А что означает break?
Процедура, прерывающая выполнение цикла for\while\repeat..
break преривание выполнения цикла, не дожидаясь выполнения условий выхода из циклаж
Привет всем!
Люди, такая проблема: задачка не верно работает(((
Сама задача - в прикрепленной картинке, первая сверху.
Код ниже:
Program org;
uses crt;
const nn=4; mm=4;
var a:array[1..nn,1..mm] of integer;
n,i,j,k,l:integer;
begin
clrscr;
randomize;
writeln('Input n,i,j: '); readln(n,i,j);
for k:=1 to n do begin
for l:=1 to n do begin
a[k,l]:=random(100)-50;
write(a[k,l]:8); end; writeln; end;
for k:=1 to n-1 do
for l:=1 to n do
a[k,l]:=a[k+1,l];
for k:=1 to n do
for l:=j to n-1 do
a[k,l]:=a[k,l+1];
for k:=1 to n do a[k,n]:=0;
for k:=1 to n-1 do
begin
for l:=1 to n-1 do
write(a[k,l],' ');
writeln;
end;
readln;
end.
Замени свой фрагмент вот на этот:
for k:=I to n-1 do { <--- удаляем I-тую строку }
for L:=1 to n do
a[k,L]:=a[k+1,L];
for k:=1 to n do
for L:=J to n-1 do { <-- и J-тый столбец }
a[k,L]:=a[k,L+1];
А блин, я перепутал буквы))) Сессия просто, напряжение, вот и допускаются такие вот ошибки идиотские. Спасибо volvo, очень благодарен тебе!
P.S. А со строками кто-нибудь может мне помочь, а?... Напишите пожалуйста полненький код ,если не составит труда...