Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2013.07.07;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.54 MB
Время: 0.003 c
15-1361431802
Andrey869
2013-02-21 11:30
2013.07.07
Оформление окна об ошибки


2-1353238704
FroZko
2012-11-18 15:38
2013.07.07
Событие OnFilterRecord


2-1353101914
vasa777
2012-11-17 01:38
2013.07.07
checkbox в memo


3-1289297780
daniyar
2010-11-09 13:16
2013.07.07
Как добавить Таблицы Access в дерево TreeView


2-1353205908
Вова
2012-11-18 06:31
2013.07.07
как сравнить время выполнения 2х функций





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский