Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 11.06.2011
Сообщений: 3

Поменять местами первый 0 и минимальный элемент массива

15.09.2011, 10:08. Показов 968. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Задали задачку по массивам с подпрограммами, попробовал сделать сам, но последнее
задание так и не далось (Поменять местами первый нулевой элемент и минимальный элемент массива). Скопирую весь свой код программы и само условие, мб где-то напортачил.
Ввести случайным образом массив с числами от -17 до 21. Распечатать введённый массив. Найти произведение элементов до первого элемента, равного нулю. Поменять местами первый нулевой элемент и минимальный элемент массива. Распечатать получившийся массив.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
program massandpodpr;
uses crt;
const n=10;
type mas=array[1..N] of integer;
var a:mas;
sym: integer;
{Ввод массива случайным образом из диапазона -17, 21}
procedure vvod_massiv(var b: mas); var i: byte;
          begin
     for i:= 1 to n do
    b[i]:=random(21)-17;
end;
{Вывод массива на экран}
procedure vivod_massiv(var b: mas);
          var i: byte;
    begin
     for i:= 1 to n do
    write(b[i]:4);
end;
{Произведение до первого 0}
function proizv(b:mas):integer;
         var i: byte;
         s: integer;
         begin
         s:=0
         i:=1;
         while (b[i]<>0) and (i<=n) do begin
         s:=s*b[i];
         i:=i+1;   end;
         proizv:=s;
end;
{Основная программа состоит из обращений к процедурам и функциям}
Begin
clrscr; 
randomize;   
 vvod_massiv(a);    gotoxy(10,3);               
writeln('Isxodn massiv');
 vivod_massiv(a);   
sym:=proizv(a);
writeln ('Произведение до первого 0 =', sym:6);    readln;       
end.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.09.2011, 10:08
Ответы с готовыми решениями:

Поменять местами минимальный элемент массива и первый элемент, имеющий нулевое значение
Поменять местами минимальный элемент массива и первый элемент, имеющий нулевое значение. Вот шапка: Uses Crt; Type Mas = array of...

Поменять местами первый минимальный элемент с первым элементом
Написать программу с использованием процедур. Поменять местами последний элемент с первым. Помогите пожалуйста

Поменять местами первый максимальный и последний минимальный элементы массива
Дан двумерный массив. Поменять местами первый максимальный и последний минимальный элементы массива. Принять, что массив просматривается...

1
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
15.09.2011, 11:42
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
program massandpodpr;
uses crt;
const n=15; {при n=10 практически нет нолей, можно даже взять 20}
type mas=array[1..N] of integer;
{Ввод массива случайным образом из диапазона -17, 21}
procedure Vvod_massiv(var b: mas);
var i: byte;
begin
  for i:= 1 to n do
  b[i]:=random(39)-17;
end;
{Вывод массива на экран}
procedure Vivod_massiv(b: mas);
var i: byte;
begin
 for i:= 1 to n do
 write(b[i]:4);
 writeln;
end;
{определим номер первого 0 в массиве}
Procedure Zero(b:mas; var i0:byte);
var i:byte;
begin
i0:=0;
i:=1;
while(i<=n) and (i0=0) do
if b[i]=0 then i0:=i
else i:=i+1;
if i0=0 then writeln('В массиве нет нолей!')
else writeln('Номер первого нулевого=',i0);
end;
{Произведение до первого 0}
function Proizv(b:mas;i0:byte):real;
{результат вещественный, просто он не входит в целые типы}
var i: byte;
    s: real;
begin
s:=1;{не 0, иначе всегда будет 0}
for i:=1 to i0-1 do
s:=s*b[i];
Proizv:=s;
end;
{Обмен первого 0 и минимального}
procedure Obmen(var b:mas;i0:byte);
var i,imin:byte;
    x:integer;
begin
imin:=1;
for i:=2 to n do
if b[i]<b[imin] then imin:=i;
writeln('Минимальный элемент=',b[imin],' его номер=',imin);
if (i0=0)or(b[imin]=0) then writeln('Обмена нет')
else
 begin
  x:=b[i0];
  b[i0]:=b[imin];
  b[imin]:=x;
  writeln('Обмен первого нулевого и минимального:');
  Vivod_massiv(b);
 end;
end;
{Основная программа состоит из обращений к процедурам и функциям}
var a:mas;
    i0:byte;
Begin
clrscr;
randomize;
vvod_massiv(a);
writeln('Исходный массив:');
vivod_massiv(a);
Zero(a,i0);
if i0=1 then writeln('До первого нуля нет элементов !')
else if i0>0 then writeln ('Произведение до первого 0 =', Proizv(a,i0):0:0);
Obmen(a,i0);
readln
end.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.09.2011, 11:42
Помогаю со студенческими работами здесь

В каждой строке матрицы поменять местами минимальный среди четных элементов и первый элемент строки
Ввести матрицу A(N×M), вывести ее. В каждой строке матрицы поменять местами минимальный среди четных элементов и первый элемент строки. ...

Поменять местами максимальный и первый элемент массива
Написать процедуру которая в заданом одномерном массиве меняет местами максимальный и первый элемент.Применить эту процедуру к каждой...

поменять местами второй и минимальный элемент массива,
поменять местами второй и минимальный элемент массива,

Первый элемент массива поменять местами с максимальным элементом
Составить программу, которая заполняет массив a случайными числами в диапазоне от 0 до 10, затем первый элемент меняет местами с...

Поменять местами второй и минимальный элемент одномерного массива,
Поменять местами второй и минимальный элемент одномерного массива,


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru