|
Написал племяшке программку на паскале, сказали что все не так | ☑ | ||
---|---|---|---|---|
0
Klesk
26.12.11
✎
13:54
|
Условие:
Вводятся размер одномерного массива и его элементы. Составить новый массив из элементов исходного массива, у которых произведение цифр является двухразрядным числом. ------------------------------------------------------- const max=10000;{max razmer massiva} type mas = array[1..max] of integer; var x:mas; {ishodniy massiv} y:mas; {noviy massiv} n:byte; {razmer ishodnogo massiva} m:byte; {razmer novogo massiva} s:string;{vspomogat stroka} ch:integer;{vspomogat chislo} i:byte; {schetchik cikla} j:byte; {schetchik cikla} proiz:integer; {proizvedenie} err:integer;{oshivka preobrazovania stroki v chislo (vspomogat)} begin writeln('Vvedite razmer massiva'); readln(n); for i:=1 to n do begin write('Vvedite element # '); writeln(i); readln(x[i]); end; m:=0; for i:=1 to n do begin str(x[i],s); proiz:=1; for j:=1 to length(s) do begin val(s[j],ch,err); proiz:=proiz*ch; end; str(proiz,s); if length(s)=2 then begin m:=m+1; y[m]:=x[i]; end end; if m<>0 then begin writeln('Vivodem massiv proizvedenie cifr kotorogo dvuhrazriadno'); for i:=1 to m do writeln(y[i]); end else writeln('Znacheniya u kotorih proizvedenie cifr dvuhrazriadno otsutstvuut'); end. ------------------------------------- подскажите, что то я напорол, или среда сейчас другая какая то у них в универе, чисто уже самому интересно. |
|||
1
URAL
26.12.11
✎
13:55
|
серьезно, ничего не понятно, надо переписать чтобы было понятно ))))
|
|||
2
garcevis
26.12.11
✎
13:58
|
Может двухразрядные определять как от 10 до 99, а не через длину строки
|
|||
3
Asmody
26.12.11
✎
13:58
|
(0) сходу: почему n и m — byte, когда max явно не byte?
и что это за манера оперировать числами через String? |
|||
4
Asmody
26.12.11
✎
14:00
|
и что за ВУЗ такой, где до сих пор паскаль учат? это всё на python или ruby в две строчки пишется
|
|||
5
jsmith82
26.12.11
✎
14:00
|
а что, в школе до сих пор преподают этот атавизм прошлого?
|
|||
6
jsmith82
26.12.11
✎
14:01
|
напиши на си шарп, порви преподу крышу
|
|||
7
Megas
26.12.11
✎
14:03
|
(4)(5) Да наверное ещё пока что везде... =)
|
|||
8
Megas
26.12.11
✎
14:04
|
Вообще смотря на (0) на первый взгляд всё так!
А что надо было сделать ? =) |
|||
9
MaxxiMiliSanM
26.12.11
✎
14:04
|
напиши на асме, порви преподу крышу 2
|
|||
10
1nf
26.12.11
✎
14:05
|
напиши на brainfuck, порви крышу себе О_о
|
|||
11
jsmith82
26.12.11
✎
14:06
|
я задачу вообще не понял
|
|||
12
Megas
26.12.11
✎
14:07
|
Я понял... задание.
Так что там, она делает что надо? что не так? Препод вообще должен сказать! |
|||
13
Megas
26.12.11
✎
14:08
|
Задача простая.. есть массив. Перемножить все его элементы между собой и если в произведении получается 2 разряда тогда пишем в новый массив
|
|||
14
GLazNik
26.12.11
✎
14:09
|
(0) А может имеет смысл сверится с курсом племяшки? Может они там какой-нить метод пузырька изучают :)
|
|||
15
1nf
26.12.11
✎
14:09
|
у меня в универе примерно такая тетка была, тоже паскалю учила, если код с ее не совпадает посимвольно, то все неправильно и иди переделывай
|
|||
16
Shurjk
26.12.11
✎
14:09
|
Паскаль самый лучший язык для обучения.
(0) А оно вообще работает, там на первый взгляд с типами полная задница должна получиться. |
|||
17
Shurjk
26.12.11
✎
14:10
|
(13) Между собой это как) каждый с каждым?
|
|||
18
Shurjk
26.12.11
✎
14:10
|
(15) А то что програ работает ее не волновало?
|
|||
19
Megas
26.12.11
✎
14:10
|
Я понял чё не так =)
вообще какаята хня написана =) Я бы подругому сделал |
|||
20
Klesk
26.12.11
✎
14:11
|
(2) да наверно проще, и правильнее
(3) с типами чисто подзабыл, как правильно? может есть какая среда паскаля посовременнее , я под дос (16) работает |
|||
21
jsmith82
26.12.11
✎
14:11
|
пылять. да любые цифры перемножь получится двуразрядка
|
|||
22
VVi3ard
26.12.11
✎
14:11
|
Напомнило:
IF STR(variable)="TRUE" then |
|||
23
kotletka
26.12.11
✎
14:12
|
(21)1*1
|
|||
24
GLazNik
26.12.11
✎
14:12
|
(21) даже если перемножить все цифры в числе 11111? Или 10000? :)
|
|||
25
Megas
26.12.11
✎
14:13
|
(17) похоже что да
(20) Странно что работает... а насчёт 2 разряда это X>= 10 and <= 99 ... что не через преобразование. Кстати а если будут числа -1 и 5 = у тебя выйдет "-5" = длинна 2 |
|||
26
1nf
26.12.11
✎
14:13
|
(18) Дык сдавать надо было на листочке, рабочая на компутере это не труЪ
|
|||
27
jsmith82
26.12.11
✎
14:13
|
я к тому что задача какая-то мутная
|
|||
28
Klesk
26.12.11
✎
14:13
|
(3) << и что это за манера оперировать числами через String?
манера програмисста 1С :) |
|||
29
Megas
26.12.11
✎
14:13
|
(21) 99 * 99 явно больше 2 разряда
|
|||
30
jsmith82
26.12.11
✎
14:14
|
я так понимаю, племяшка учится не на прогера
|
|||
31
VladZ
26.12.11
✎
14:15
|
(0) writeln('Vvedite razmer massiva'); - разве Паскаль с русским не дружит?
|
|||
32
Klesk
26.12.11
✎
14:15
|
(30)нет
|
|||
33
Креатив
26.12.11
✎
14:15
|
(0)Для отделения цифр нужно использовать операторы div и mod. Строки в данном случае - зло и тормоза.
|
|||
34
Shurjk
26.12.11
✎
14:15
|
(28) Кстати наверное надо какой то алгоритм использовать для поиска таких чисел, а не тупо перебором решать. Да и условие какое то мутное.
|
|||
35
kotletka
26.12.11
✎
14:16
|
(29)число<>цифра
|
|||
36
Vladal
26.12.11
✎
14:18
|
Думаю, решать рекурсивно - перемножить элементы исходного массива, из них сформировать второй.
Потом перемножить второй... На выходе получится фигня - 2-3 элемента, произведение которых всегда будет двузначным. |
|||
37
GLazNik
26.12.11
✎
14:18
|
(31) Ну это явно не самая главная ошибка :)
(32) И я таки думаю что конспектики не мешало бы проверить :) Ибо может быть (34), который они изучали совсем недавно. |
|||
38
strh
26.12.11
✎
14:18
|
(0) на мой взгляд при работе с числами не красиво разрядность числа определять через строку и как и получать цифры
|
|||
39
Klesk
26.12.11
✎
14:18
|
угу, всем спасибо понятно
|
|||
40
jsmith82
26.12.11
✎
14:20
|
напомнило
вывести все цифры, которые являются цифрами |
|||
41
Креатив
26.12.11
✎
14:21
|
(36)Задача-то состоит в том, чтобы брать элементик первого массива, перемножать его циферки. Если в результате получится двухзначное число, то записывать его в новый массив.
|
|||
42
Klesk
26.12.11
✎
14:24
|
сильно тупанул со строками, надо было 9> x <100
|
|||
43
Йохохо
26.12.11
✎
14:37
|
если это начальный какой то курс, легко зарежут за отсутствие контроля ввода и превышения размера массива.
xmas радует глаз, остальной транслит вызывает резкое отвращение =) 41$|0 уж тогда |
|||
44
orefkov
26.12.11
✎
14:45
|
(0)
Да уж, произведение цифр определять через строки/символы, это сродни if(val.toString().length == 4) // "true" Вот так надо: Тест = масс[i]; Пр = 1; Если Тест > 0 Тогда Пока Тест > 0 И Пр > 0 Цикл Пр = Пр * (Тест % 10); Тест = Цел(Тест / 10); КонецЦикла; Иначе Пр = 0; КонецЕсли; |
|||
45
DailyLookingOn Sunset
26.12.11
✎
14:46
|
Ну как бы есть только вывод нового массива на экран.
А в памяти этот массив так и остался [1..max]. Т.е. при передаче данных в другой алгоритм будет ошибка. Массивы переменной размерности вроде уже были в Дельфи 4. |
|||
46
Волесвет
26.12.11
✎
14:54
|
аорпо4лол5
вот такой элемент в одномерном массиве и он может быть введен, произведение чисел в нем равен 20 имхо: нужна проверка является числом |
|||
47
Волесвет
26.12.11
✎
14:56
|
+(46) задачка на массивы скорее всего заводится массив чисел от 0 до 9 в котором ищется. если находится то умножается, смотрим произведение, если попадает в условие то записываем в итоговый массив
|
|||
48
orefkov
26.12.11
✎
14:56
|
(46)
Вы с этим 1С уже с ума посходили :) Откуда в Паскале в mas = array[1..max] of integer; элемент "аорпо4лол5" ? Он же "of integer" |
|||
49
dmpl
26.12.11
✎
14:59
|
(48) Тогда все неправильно - в условии нигде нет указания, что элементы массива - числа.
|
|||
50
Волесвет
26.12.11
✎
15:00
|
(48) про интежер в условии не сказано
|
|||
51
orefkov
26.12.11
✎
15:04
|
(49)
Наверняка то, что это интежер, понятно из контекста темы, да и "произведение его цифр" как бы намекает... Вряд ли вам бух в ТЗ пишет - "сумма в колонке должна выводится числом рублей из арабских цифр, далее точка, далее число копеек, двумя арабскими цифрами", а то вы все норовите то римскими, то в hex вывести, то словами. |
|||
52
Песец
26.12.11
✎
15:13
|
(4) Надо подстраиваться под уровень за кого делаешь уроки, если студень простейшую задачу не способен осилить, то решить надо, конечно, правильно, но дубовым способом.
|
|||
53
dmpl
26.12.11
✎
15:16
|
(51) Где сказано, что это целые числа, а не вещественные?
|
|||
54
orefkov
26.12.11
✎
15:54
|
(53)
О, прожженый прог - "в ТЗ нет - идите нафиг". Не тупите, в задачах для племяшек при освоении массивов априори предполагается, что это массив целых чисел. |
|||
55
Fragster
гуру
26.12.11
✎
16:01
|
все не так - из-за того, что лабораторная должна реализовывать динамическое выделение памяти, не?
|
|||
56
Fragster
гуру
26.12.11
✎
16:02
|
раз уж "вводим размер массива"
|
|||
57
ado
26.12.11
✎
16:03
|
(48) Бгггг. Боюсь, многие одноэсники и не знают, что в этом мире бывает строгая типизация. Многие ведь на 1С программировать учились.
|
|||
58
el-gamberro
26.12.11
✎
16:04
|
(0) Автор ты тебя русскому в школе что-ли не учили? Пиши код нормально и понятно, а то какие-то непонятные латинские символы
|
|||
59
dmpl
27.12.11
✎
09:21
|
(54) Не, "В ТЗ этого нет - уточните ТЗ".
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |