• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Помогите доделать задание на массив

  • Автор темы Автор темы tatca
  • Дата начала Дата начала
Статус
В этой теме нельзя размещать новые ответы.

tatca

Новые
Регистрация
19 Май 2011
Сообщения
11
Реакции
0
Баллы
0
Помогите доделать задание на массив

Я сделала № 1
1. Составьте программу, которая запрашивает значение элементов одномерного числового массива А, формирует и выводит на экран в строку новый числовой массив В, в котором элементы равны модулю соответствующих элементов А.

program upr6_1;
type mas_a=array[0..30] of integer;
type mas_c=array[0..30] of integer;
var a:mas_a; c:mas_c; i,n:integer;
begin
writeln ('введите количество элементов '); readln(n);
for i:=1 to n do
read (a);
for i:=1 to n do
write (a:5);
writeln;
for i:=1 to n do
c:= abs(a);
for i:=1 to n do
write (c:5);
writeln;
end.

Помогите с №2
2. Измените предыдущую программу так, чтобы в массиве В, элемент с номером i был равен произведению первых i элементов массива А.
 
По поводу программы.
В принципе всё правильно, и работать будет, но вот это:
type mas_a=array[0..30] of integer;
type mas_c=array[0..30] of integer;
var a:mas_a; c:mas_c; i,n:integer;
тихий ужас...
Для начала, непонятно на кой пёс Вам вообще сдались эти пользовательские типы? Такое применяется, в частности, когда нужно организовать обмен данными между программой и подпрограммой, или модулями и т.п., у Вас же - обычная сугубо линейная программа, где это вовсе ни к чему. И уж тем более создание двух абсолютно идентичных типов - совсем абсурд! Вот два варианта:
1. Без пользовательских типов:
var
a,c:array[0..30] of integer;
i,n:integer;
2. С введением типа (если уж очень хочется):
type
mas=array[0..30] of integer;
var
a,c:mas;
i,n:integer;
 
Помогите с №2 2. Измените предыдущую программу так, чтобы в массиве В, элемент с номером i был равен произведению первых i элементов массива А.
Пожалуйста - плюс кое-какая косметика:
Код:
var
 a:array[0..30] of integer;
 b:array[0..30] of LongInt;
 i,n,k:integer;
begin
 write('введите количество элементов: ');
 readln(n);
 for i:=1 to n do
  begin
   write('a[',i:2,']= ');
   readln(a[i]);
  end;
 writeln;
 for i:=1 to n do
  write(a[i]:5);
 writeln;
 writeln;
 for i:=1 to n do
  begin
   b[i]:=1;
   for k:=1 to i do
    b[i]:=b[i]*a[k];
  end;
 for i:=1 to n do
  write (b[i]:10);
 writeln;
 readln
end.
Только числа вводите маленькие - однозначные. Иначе произведения могут "выскочить" даже за пределы формата LongInt.
 
По поводу "тихого ужаса "! :tehnari_ru_854:

Просто нас так учат!
 
Вас учат вполне правильно, но вот вы свои знания применяете ужасно.
 
Просто нас так учат!
Clev.gif - это я про Ваших "учителей".
То есть если, конечно, Вас действительно учат для каждой переменной-массива непременно вводить свой тип. Даже если массивы одинаковы.
 
Помогите пожалуйста, задание на массив!!!!
[MOD2]Значит так.
1. Несмотря на неоднократные предупреждения о недопустимости подобного, Вы, уважаемая, продолжаете клонировать свои топики, цепляясь к чужим темам.
2. Еще три дня назад Ваш запрос был перенесен в новую, специально созданную тему
http://www.tehnari.ru/f41/t53075/
где и было выложено решение задачки.
3. Это - последнее предупреждение. Еще одна подобная выходка - и пойдете в бан.
ТЕМА ЗАКРЫТА

Модератор[/MOD2]
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху