Приветствуем читателей нашего сайта! Сегодня мы с вами решим задачи series29-40.
Series29-40
Series29. Даны целые числа K, N, а также K наборов целых чисел по N элементов в каждом наборе. Вывести общую сумму всех элементов, входящих в данные наборы.
Program series29; var k, n, a, i, j, summ: integer; begin write('Введите K: '); readln(k); write('Введите N: '); readln(n); for i:=1 to k do for j:=1 to n do begin read(a); summ := summ + a; end; write('Общая сумма всех элементов: ', summ); end.
Series30°. Даны целые числа K, N, а также K наборов целых чисел по N элементов в каждом наборе. Для каждого набора вывести сумму его элементов.
Program series30; var k, n, a, i, j, summ: integer; begin write('Введите K: '); readln(k); write('Введите N: '); readln(n); for i:=1 to k do begin for j:=1 to n do begin read(a); summ := summ + a; end; writeln('Сумма элементов: ', summ); summ := 0; end; end.
Series31. Даны целые числа K, N, а также K наборов целых чисел по N элементов в каждом наборе. Найти количество наборов, содержащих число 2. Если таких наборов нет, то вывести 0.
Program series31; var k, n, a, i, j, count: integer; prov: boolean; begin write('Введите K: '); readln(k); write('Введите N: '); readln(n); for i:=1 to k do begin for j:=1 to n do begin read(a); if (a = 2) and (prov = false) then //prov = false, если набор не содержит число 2 begin inc(count); prov := true; end; end; prov := false; end; write('Количество наборов, содержащих число 2: ', count); end.
Series32. Даны целые числа K, N, а также K наборов целых чисел по N элементов в каждом наборе. Для каждого набора вывести номер его первого элемента, равного 2, или число 0, если в данном наборе нет двоек.
Program series32; var k, n, a, i, j: integer; prov: boolean; begin write('Введите K: '); readln(k); write('Введите N: '); readln(n); for i:=1 to k do begin for j:=1 to n do begin read(a); if (a = 2) and (prov = false) then //prov = true в том случае, когда 2 в наборе уже встречалась begin writeln('Номер первого элемента набора, равного 2: ', j); prov := true; end; end; if prov=false then writeln('Номер первого элемента набора, равного 2: ',0) else prov:=false; end; end.
Series33. Даны целые числа K, N, а также K наборов целых чисел по N элементов в каждом наборе. Для каждого набора вывести номер его последнего элемента, равного 2, или число 0, если в данном наборе нет двоек.
Program series33; var k, n, a, i, j, num: integer; begin write('Введите K: '); readln(k); write('Введите N: '); readln(n); for i := 1 to k do begin for j := 1 to n do begin read(a); if a = 2 then num := n; //заносим номер элемента, равного 2, в переменную num end; writeln('Номер последнего элемента набора, равного 2: ', num); num := 0; end; end.
Series34. Даны целые числа K, N, а также K наборов целых чисел по N элементов в каждом наборе. Для каждого набора выполнить следующее действие: если в наборе содержится число 2, то вывести сумму его элементов; если в наборе нет двоек, то вывести 0.
Program series34; var k, n, i, j, a, summ: integer; prov: boolean; begin prov := false; write('Введите K: '); readln(k); write('Введите N: '); readln(n); for i := 1 to k do begin for j := 1 to n do begin read(a); summ := summ + a; if a = 2 then prov := true; //отмечаем, что число 2 в наборе встретилось end; if not prov then writeln(0) else begin writeln('Сумма элементов данного набора: ', summ); prov := false; end; summ := 0; end; end.
Series35. Дано целое число K, а также K наборов ненулевых целых чисел. Признаком завершения каждого набора является число 0. Для каждого набора вывести количество его элементов. Вывести также общее количество элементов во всех наборах.
Program series35; var a, k, i, summ, summ1: integer; begin write('Введите K: '); readln(k); for i:= 1 to k do begin read(a); while a<>0 do begin inc(summ); //количество элементов данного набора inc(summ1); //количество элементов всех наборов read(a); end; writeln('Сумма элементов данного набора: ', summ); summ := 0; //обнуляем значение переменной, отвечающей за подсчет кол-ва элементов в наборе end; write('Сумма элементов всех наборов: ', summ1); end.
Series36. Дано целое число K, а также K наборов ненулевых целых чисел. Каждый набор содержит не менее двух элементов, признаком его завершения является число 0. Найти количество наборов, элементы которых возрастают.
Program series36; var a, k, i, count, tmp: integer; prov: boolean; {вводим логическую переменную, показывающую, была последовательность возрастающей (при false) или же нет (true)} begin write('Введите K: '); readln(k); for i:= 1 to k do begin read(tmp); read(a); while a<>0 do begin if a <= tmp then prov := true; {если возрастание последовательности нарушено, изменяем значение логической переменной} tmp := a; read(a); end; if prov = false then inc(count) {в конце итерации цикла for увеличиваем значение переменной count, если последовательность является возрастающей} end; writeln('Количество наборов, элементы которых возрастают: ', count); end.
Series37. Дано целое число K, а также K наборов ненулевых целых чисел. Каждый набор содержит не менее двух элементов, признаком его завершения является число 0. Найти количество наборов, элементы которых возрастают или убывают.
program series37; var a, k, i, count, tmp: integer; up, down, prov: boolean; begin write('Введите K: '); readln(k); for i := 1 to k do begin read(tmp); read(a); while a <> 0 do begin if a <> tmp then //элементы не должны быть равны, если же они равны, выходим из цикла begin if (a > tmp) and (down = false) then //если два данных числа возрастают, и предыдущие числа тоже up := true else //то обозначаем эту последовательность как возрастающую, дабы не путаться в будущем if (a < tmp) and (up = false) then //аналогично поступаем и в случае с убыванием down := true else //но если числа не равны, не возрастают и не убывают, то begin prov := true; break; //выходим из цикла end; end else begin //то есть если a = 0 prov := true; //это значит, что последовательность ни возрастает, ни убывает break; //выход из цикла end; tmp := a; read(a); end; if prov = false then inc(count) else prov := false; up := false; //данная итерация цикла for завершается, а значит, возвращаем значения переменных в исходный вид down := false; end; writeln('Количество наборов, элементы которых возрастают или убывают: ', count); end.
Series38. Дано целое число K, а также K наборов ненулевых целых чисел. Каждый набор содержит не менее двух элементов, признаком его завершения является число 0. Для каждого набора выполнить следующее действие: если элементы набора возрастают, то вывести 1; если элементы набора убывают, то вывести −1; если элементы набора не возрастают и не убывают, то вывести 0.
program series38; var a, k, i, tmp: integer; up, down, prov: boolean; begin write('Введите K: '); readln(k); for i := 1 to k do begin read(tmp); read(a); while a <> 0 do begin if a <> tmp then begin if (a > tmp) and (down = false) then up := true else if (a < tmp) and (up = false) then down := true else begin prov := true; break; end; end else begin prov := true; break; end; tmp := a; read(a); end; if prov = false then begin if up = true then writeln(1) else //совсем немного изменяем предыдущий код writeln(-1) end else begin writeln(0); prov := false; end; up := false; down := false; end; end.
Series39. Дано целое число K, а также K наборов ненулевых целых чисел. Каждый набор содержит не менее трех элементов, признаком его завершения является число 0. Найти количество пилообразных наборов (определение пилообразного набора дано в задании Series23).
За основу кода решения данной задачи я взяла решение series23. Как вы видите, оно почти не изменилось.
program series39; // previous_digit = prev_d // next_digit = next_d var i, count, k, prev_d, next_d, tooth_d: integer; teeth: boolean; begin write('Введите K: '); readln(k); for i := 1 to k do begin teeth := true; read(prev_d, tooth_d, next_d); while next_d <> 0 do begin if (tooth_d > prev_d) and (tooth_d > next_d) or (tooth_d < next_d ) and (tooth_d < prev_d) then begin prev_d := tooth_d; tooth_d := next_d; read(next_d); end else begin teeth := false; break end; end; if teeth then inc(count) end; writeln('Количество пилообразных наборов: ', count); end.
Series40. Дано целое число K, а также K наборов ненулевых целых чисел. Каждый набор содержит не менее трех элементов, признаком его завершения является число 0. Для каждого набора выполнить следующее действие: если набор является пилообразным (см. задание Series23), то вывести количество его элементов; в противном случае вывести номер первого элемента, который не является зубцом.
program series40; // previous_digit = prev_d // next_digit = next_d var i, count, k, prev_d, next_d, tooth_d: integer; teeth: boolean; begin write('Введите K: '); readln(k); for i := 1 to k do begin teeth := true; read(prev_d, tooth_d, next_d); count := 3; while next_d <> 0 do begin if (tooth_d > prev_d) and (tooth_d > next_d) or (tooth_d < next_d ) and (tooth_d < prev_d) then begin prev_d := tooth_d; tooth_d := next_d; read(next_d); inc(count) end else begin teeth := false; break; end; end; if (teeth = false) then writeln('Номер первого элемента, который не является зубцом: ', count - 1); if teeth then writeln('Количество элементов в наборе: ', count-1); //Вычитаем ноль, который элементом не является end; end.
На сегодня всё! Если у вас возникли вопросы, задавайте их в комментариях. И не забывайте рассказывать о нашем сайте своим друзьям, кликая по этим замечательным круглым (квадратным) кнопочкам!
Всем привет. Не судите строго, но я считаю, что без использования массивов эти задачи не имеют ни малейшего смысла, так как не очень то удобно получить решения во время ввода данных, и после того, как данные будут введены искать » а что же нам тут показала наша задача».
Гараздо приятнее смотреть на результат работы такой задачи, например для
Всем привет. Не судите строго, но я считаю, что без использования массивов эти задачи не имеют ни малейшего смысла
program mas;
uses crt;
var k,n,i,j:integer;
a:array[1..100,1..100] of real;
l:boolean;
begin
clrscr;
writeln(‘Введите размерность матрицы k,n: ‘);
readln(k,n);
for i:=1 to k do
for j:=1 to n do
begin
write(‘a[‘,i,’,’,j,’] = ‘);
readln(a[i,j]);
end;
for i:=1 to k do
begin
l := false;
for j:=1 to n do
if a[i,j] = 2 then
begin
l:=true;
writeln(‘В строке ‘,i,’ индекс элемента равного двум ‘,j);
break;
end;
if not l then
writeln(‘В строке ‘,i,’ элемента равного двум нет’);
end;
readln;
end.
всем привет))помогите решить задачу в Паскале.
Перемножение двух матриц.
Заданы трехмерные матрицы
одинаковых размеров 7x7x7,
заполненные случайными числами из диапазона [1, 100]. Перемножить их элементы,
имеющие одинаковые индексы, и вывести результаты на экран и записать в файл
«output.txt».
у вас ошибочка в 32 задании writeln(‘Номер первого элемента набора, равного 2: ‘,n);
а должно быть так writeln(‘Номер первого элемента набора, равного 2: ‘,j);
Ай-яй-яй, у вас ошибка в Series33.
Не «num := n», а «num := j»!
У вас ошибка в Series36.
Вы коде вы пропустили одну строчку, из-за которой весь код не работает. Итак, вводим K=4 (то есть у нас 4 набора). Теперь, если в первом наборе НЕТ возрастающей последовательности, а в ПОСЛЕДУЮЩИХ она есть, то эти последующие наборы не будут засчитываться! А всё потому, что в начале работы с каждым набором ваша переменная «prov» типа boolean должна снова становиться «false». Иначе после ввода элементов первого набора, который НЕ является возрастающим, все последующие после него наборы, которые ЯВЛЯЮТСЯ возрастающими, НЕ будут засчитаны.