Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.07.07;
Скачать: CL | DM;

Вниз

масивчик (   Найти похожие ветки 

 
G-leb   (2012-11-16 21:05) [0]

Задали массив чисел A (n) , n ≤ 500. Разработать программу, которая вычисляет сумму всех чисел, которые повторяются, и произведение всех чисел, которые не повторяются
///Задайте значение действительным величинам произвольным образом в диапазоне от 0 до 100///

uses
 SysUtils;
const n = 500;
type mas = array[1..n] of integer;
var a: mas; i: byte;
begin writeln("vvod:");
for i:=1 to n do readln(a[i]);
writeln("vuvod:");
  for i:=1 to n do write(a[i]:n);
  readln;
  end.


вот масив .. как дописать чтоб находило похожие и добавляло ... а не походие умножало ?


 
Rouse_ ©   (2012-11-16 21:10) [1]

Глеб, представь что оперирующий тебя врач прибежал на форум с вопросом "с какой стороны аппендицит"?

Я могу понять когда люди провели собственные изыскания и уперлись в непонятный им момент, но вот так чтобы сразу (решите за меня).

Сейчас девять - за два часа, думаю сможешь написать то, что тебе не понятно в алгоритме. Если нет - закрываемся...


 
G-leb   (2012-11-16 21:13) [2]

2 день сижу .. не могу понять ничего ... прочитал уже штук 30 примеров  не могу понять как найти ..


 
Rouse_ ©   (2012-11-16 21:16) [3]

Ну ты код то свой покажи чего наваял, лучше каждую строчку прокомментируй, так может и сам поймешь ошибку


 
Сергей М. ©   (2012-11-16 21:44) [4]


> G-leb   (16.11.12 21:05)  


Тебе ж сказано в задании - "Задайте значение действительным величинам"

А ты что пишешь вместо этого ?
> mas = array[1..n] of integer;

За два дня можно было бы вполне разобраться хотя бы с этим весьма важным для поиска и выбора решения моментом.


 
AV ©   (2012-11-16 22:10) [5]


> Разработать программу, которая вычисляет сумму всех чисел,
>  которые повторяются

начать надо с определения таковых.
напиши как найти первое число, которое уже встречалось.


 
G-leb   (2012-11-16 22:12) [6]

Вот помогли мне  .... но есть кое что непонятное

program lab5;

{$APPTYPE CONSOLE}

uses
 crt;

Var
  a : array [1..500] of   integer;
  n, i, j, k, sum, mul, col: integer;
begin
 write("Введите размерность массива:");
 readln(n);
 mul := 1;// cумма элементов
 sum := 0;
// инициализация массива
 for i := 1 to n do
 begin
   randomize;
   a[i] := random (100);
 end;
// вывод элементов
 for i := 1 to n do   write(a[i], " ");
//  проход массива. Каждый элемент сравниваем с каждым.
 writeln;
 k := 1;
 for i := 1 to n do
 begin
   col := 0; // переменная для  подсчёта  количества совпадений.
   for j := 1 to n do
   begin
   // если встретился такой же элемент
     if (a[i] = a[j]) then
     begin
       inc(col);// увеличиваем счётчик совпадений на 1
     end;
   end;
   { если  в программе было только одно свпадение чисел(сравнили
   число с самим собой) - произведение элнментов }
   if (col = 1) then
     mul := mul * a[i]
   else
   // иначе - сумма
   sum := (sum + a[i]);
 end;
 writeln("Cумма = ",sum);
 writeln("Произведение = ", mul);
 
end.


1
> mas = array[1..n] of integer; ставлю real выдает ошибку ...

2. генерирует как-то странно по 10-15 одинаковых чисел
и

uses
crt; тож ошибку выдает ставлю
uses
SysUtils; только тогда работает


 
Сергей М. ©   (2012-11-16 22:37) [7]


> ставлю real выдает ошибку


Вернешь на место integer - "ошибку" тебе выдаст препод, не засчитав задание выполненным.

Придется тебе выбирать из двух зол меньшее)


 
Сергей М. ©   (2012-11-16 22:43) [8]


> Вот помогли мне


Тебе "помог" такой же незнайка.
Так сказать медвежью услугу тебе оказал, подсуетившись и выдав неверное решение.


 
G-leb   (2012-11-16 22:43) [9]

так не запускается  с real :(


 
Rouse_ ©   (2012-11-16 22:44) [10]


> uses
> crt; тож ошибку выдает ставлю
> uses
> SysUtils; только тогда работает

Т.е. для тебя что паскалевская программа, что на дельфе, как я понял монопенисюальны? Где учишся, что за ПТУ такой?


 
Jeer ©   (2012-11-16 22:47) [11]


>  Где учишся, что за ПТУ такой?


Скорее всего ВУЗ, заявленный под сокращение. :(
Да и правильно.

P.S.
Иди в ремесленники, работай руками - это более понятно и востребовано.


 
Rouse_ ©   (2012-11-16 22:49) [12]

В вузах учат, это явно не вуз...


 
Сергей М. ©   (2012-11-16 22:50) [13]


> так не запускается  с real


Так ты разберись почему "не запускается" - в сообщение об ошибке вникни ..
Или препод с тобой "разберется", если ты не разберешься)

Ну есть, конечно, и "запасной вариант" - купить у кого-нибудь готовое решение и попытаться впарить его преподу как своё).. Но тут есть немалый риск что "аппаратура при нем"))


 
G-leb   (2012-11-16 23:21) [14]

первый курс - 3 лабораторная по программированию ..  до етого никогда не сталкивался с программирование )) .. ну может чуть чуть


 
Сергей М. ©   (2012-11-16 23:27) [15]


> G-leb   (16.11.12 23:21) [14]


Подсказка : сначала отсортируй массив (по возрастанию или убыванию  - не важно) любым известным тебе алгоритмом сортировки.


 
G-leb   (2012-11-16 23:27) [16]

первые 2 лабы сам написал почти .. немного в нете подсказывали ... но там легко иф елсе одни  ввод вывод  переменных  кнопка батон и текстовые поля ... а тут цыкл и масив появился .. и я  еще не совсем понимаю как с ними работать .. теорию вроде  прочитал .. а куда-то в сторону пофантазировать иже проблематично


 
G-leb   (2012-11-16 23:29) [17]

хахах .. мне не известен ни 1 алгоритм сортировки ))) гуглу известен ... у него сейчас спрошу


 
Сергей М. ©   (2012-11-16 23:38) [18]


> хахах .. мне не известен ни 1 алгоритм сортировки )))


Тут рыдать нужно, ибо факт-то сам по себе скорбный)
а ты зубоскалишь)


 
G-leb   (2012-11-16 23:43) [19]

Var
  a : array [1..500] of  integer;
  n, i, j, k, sum, mul, col: integer;
begin
 write("pazmernost masiva:");
 readln(n);
 for i := 1 to n do
 begin
 {randomize;   }
   a[i] := random (100);
 end;
 for i := 1 to n do   write(a[i], " ");
    readln;
end.

вот ..  - почему первое число масиво всегда =0 ??? а если   {randomize;   } написать без {} то  повторяются по 5-10 раз одни и теже сгенерируемые цыфры .. ?


 
G-leb   (2012-11-16 23:44) [20]

сереж .. если есть время  и желание объяснить и научить .. дай аську .. там быстрее будет .. ))0 я нашел пример "пузырьковой сортировки "


 
Jeer ©   (2012-11-16 23:53) [21]

Я просто "плачу" от уровня образования сегодняшних "студентов", а также преподавателей их и чему-то.
Последним - свечка в задницу.


 
Сергей М. ©   (2012-11-16 23:55) [22]


> почему первое число масиво всегда =0 ?


Ну, положим, не всегда, а только при определенной "фазе Луны")
А управление этой "фазой" как раз и осуществляется оператором Randomize.


> повторяются по 5-10 раз одни и теже сгенерируемые цыфры


Потому что диапазон (100) для массива в n=500 элементов маловат /
Чем больше он будет при неизменном n, тем реже будут генерироваться повторяющиеся числа (а не "цифры")


> там быстрее будет


Это ты мне ?
Я вообще-то никуда не спешу)


 
Сергей М. ©   (2012-11-17 00:00) [23]


> Jeer ©   (16.11.12 23:53) [21]


Так ведь сегодняшние студни - это вчерашняя школота..
А там ситуация еще прискорбней..


 
Сергей М. ©   (2012-11-17 00:05) [24]


> Последним - свечка в задницу


В смысле чтобы в заднице светлее стало, ибо "ученье - свет" ?)


 
G-leb   (2012-11-17 00:11) [25]

так с рендомайзом - это будет правильно да .. ?  окей.. допустим числа генерирует... теперь их сортируем ..
uses
crt;
Var
  a : array [1..500] of  integer;
  n, i, j, k, sum, mul, col: integer;
begin
clrscr;
randomize;
 write("pazmernost masiva:"); readln(n);

 for i := 1 to n do
  a[i] := random (100);
 for i := 1 to n do   write(a[i]:3);

      {  for j:=1 to n-1 do   begin
    for i:=1 to n-j do begin
       if (k[i] > k[i+1]) then  swap(k[i],k[i+1]) }

    readln;
end.


почему у меня  
uses
crt;  - показывает ошибку    

и что значит " :3"   вот здесь write(a[i]:3);


 
G-leb   (2012-11-17 00:14) [26]

в айсикю или аське .. удобнее ведь ..


 
G-leb   (2012-11-17 00:14) [27]

скайпе *


 
G-leb   (2012-11-17 00:14) [28]

или ВК


 
Sha ©   (2012-11-17 00:16) [29]

Разбирайся

program Laba;
{$APPTYPE CONSOLE}
var
 a: array [1..500] of double;
 mul, sum: double;
 i, j, n: integer;
begin
 write("dimension: "); readln(n);
 if (n>=1) and (n<=Length(a)) then begin;
   mul:=1;
   sum:=0;
   Randomize;
   for i:=1 to n do a[i]:=Random (100);
   for i:=1 to n do write(a[i]:3:0);
   writeln;
   for i:=1 to n do begin
     j:=n;
     while (j=i) or (j>0) and (a[j]<>a[i]) do dec(j);
     if j=0 then mul:=mul*a[i] else sum:=sum+a[i];
   end;
   writeln("mul = ", mul);
   writeln("sum = ", sum);
   readln;
 end;
end.


 
Jeer ©   (2012-11-17 00:21) [30]


> Sha ©   (17.11.12 00:16) [29]
>
> Разбирайся


Бесперспективно, но хотел бы ошибиться.


 
Сергей М. ©   (2012-11-17 00:26) [31]


> Sha ©   (17.11.12 00:16) [29]
>

> mul:=1;


Здесь довольно сомнительный момент.

Если после вычислений m останется равной 1, то толи не было в массиве уникальных элементов, толи были, но ни одного нулевого среди них не было ...

А если сделать mul:=0, то тоже хз как трактовать 0 в mul на выходе - толи не было уникальных, толи был один равный нулю


 
Сергей М. ©   (2012-11-17 00:31) [32]


> G-leb



> в айсикю или аське ..
> скайпе *
> или ВК


Вот мне оно надо - заниматься спринтерским ликбезом в час ночи занахаляву ?)


 
Sha ©   (2012-11-17 00:31) [33]

так и с суммой то же самое,
проще по определению считать, что если не было, то mul=1,
как, например, считают 0!=1, и ничего, все довольны


 
G-leb   (2012-11-17 00:35) [34]

write(a[i]:3:0);    что такое 3 и 0 ?


 
Sha ©   (2012-11-17 00:38) [35]

а что такое F1?


 
G-leb   (2012-11-17 00:40) [36]

не 7 винде не работает ф1


 
Сергей М. ©   (2012-11-17 00:40) [37]


> Sha ©   (17.11.12 00:31) [33]
>
> так и с суммой то же самое


Ну это да, и с суммой те же фаберже.
Допущения в таких случаях следовало бы отражать в задании, ибо не глядючи в код но токмо в результаты рантайм-прогона придраться к правильности выполнения задания можно запросто.


 
Сергей М. ©   (2012-11-17 00:42) [38]


> не 7 винде не работает ф1


Гуголь тоже не работает на "7 винде" ?
Это же "гнилая отмазка")


 
Sha ©   (2012-11-17 00:43) [39]

>G-leb   (17.11.12 00:40) [36]
>не 7 винде не работает ф1


смени винду


 
G-leb   (2012-11-17 00:49) [40]

а гг ))  промежутки между  числами )



Страницы: 1 2 вся ветка

Текущий архив: 2013.07.07;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.006 c
15-1361309404
Юрий
2013-02-20 01:30
2013.07.07
С днем рождения ! 20 февраля 2013 среда


15-1361287987
TStas
2013-02-19 19:33
2013.07.07
Как редактировать анкету?


15-1361478603
Юрий
2013-02-22 00:30
2013.07.07
С днем рождения ! 22 февраля 2013 пятница


2-1353170309
toropoff
2012-11-17 20:38
2013.07.07
{$DEFINE ..} как с ним работать...


15-1361396205
TUser
2013-02-21 01:36
2013.07.07
Артиллерия