[ /tv/ /rf/ /vg/ /a/ /b/ /u/ /bo/ /fur/ /to/ /dt/ /cp/ /oe/ /bg/ /ve/ /r/ /mad/ /d/ /mu/ /cr/ /di/ /sw/ /hr/ /wh/ /lor/ /s/ /hau/ /slow/ /gf/ /vn/ /w/ /ma/ /azu/ /wn/ ] [ Main | Settings | Bookmarks | Music Player ]

No.213 Reply
File: 1233124252728.jpg
Jpg, 5.96 KB, 200×160 - Click the image to expand
edit Find source with google Find source with iqdb
1233124252728.jpg

Анон, помоги разобраться! Объясни как работает алгоритм (паскаль).

1) Составьте программу определения максимального из всех введенных чисел (Признак окончания работы -0).
==
var max,i:integer;
begin
writeln('Input number');
read(max);
repeat
read(i); {Откуда берет свои значения переменная i?}
if max<i then max:=i;
until i=0;
writeln('Max:',max);
end.

2) Дана непустая последовательность ненулевых чисел, за которой следует ноль. Определить, сколько раз в этой последовательности меняется знак (например, в последовательности 1,38,8,-14,6,-4 знак меняется 3 раза).
==
var a,k,n:integer;
begin
writeln('Введите числа (0-конец)');
read(a);
k:=a;
while a<>0 do
begin

read(a);      {Почему "k" равно предыдущему значению "а"?}
if k*a<0 then n:=n+1;
k:=a;
end;

writeln('Знак меняется ',n,' раз' );
end.

>> No.216 Reply

http://school.ciit.zp.ua/small/index.xhtml тут было

>> No.220 Reply

>>216
Нету там

>> No.223 Reply
File: 1233145283383.gif
Gif, 79.01 KB, 500×346 - Click the image to expand
edit Find source with google Find source with iqdb
1233145283383.gif

1) Значение вводятся в строку с клавиатуры.
2) Если у двух чисел разные знаки, то их произведение меньше нуля. Для сравнения произведения двух последовательно идущих значений нужны сами значения. В k заносится предыдущее значение, чтобы не потерять его.

>> No.290 Reply

>>213
пиши на бейсике. ну, или, хотя бы на PL/1
паскаль - для идиотов

>> No.302 Reply

>>290

>паскаль - для идиотов
>пиши на бейсике

Ну это пиздец же.
(post-scriptum (Hail ALL LISP))

>> No.305 Reply
File: 1234878877033.png
Png, 241.01 KB, 750×600 - Click the image to expand
edit Find source with google Find source with iqdb
1234878877033.png

Ну вы понели да.

>> No.311 Reply
import re
import sys
lines = sys.stdin.readlines()
numbers = [int(x) for x in lines if re.match(r'\s*[+-]?\d+\s*$', x)]
print ('Maximum: ', max(numbers))

:3

>> No.341 Reply

>>311
maximum $ list

Ну ты понел.

>> No.342 Reply

>>341
Какбе в питоне можно и max(list).

>> No.343 Reply

>>342
А так можно? :3

Prelude> let maximum' x = foldl1 max x
Prelude> :t maximum'
maximum' :: (Ord a) => [a] -> a
Prelude> maximum' [1,2,3,2]
3

>> No.344 Reply

>>343
Если ты объяснишь, что тут написано.

>> No.345 Reply

>>344
Мы опеределили свою функцию нахождения максимума в одну строчку через fold.

Можно и не используя max:
Prelude> let maximum' x = foldl1 (\a b -> if a > b then a else b) x
Prelude> maximum' [1,2,3,2]
3

Можно и без fold:
Prelude> let maximum' (x:x':xs) = if x > x' then maximum (x:xs) else maximum (x':xs)
Prelude> maximum' [1,2,3,2]
3

>> No.346 Reply

>>345
То есть так:
let maximum' (x:x':xs) = if xs == [] then if x > x' then x else x' else if x > x' then maximum' (x:xs) else maximum' (x':xs)

>> No.347 Reply

>>345
Именно в одну строчку? Сомневаюсь. А какое преимущество у объявления функции в одну строчку?

Алсо, почему бы не ставить оступы, с ними же куда понятнее? И сразу видно, что не совсем это и одна строчка.

let maximum' (x:x':xs) = 
if xs == [] then
if x > x' then
x
else x'
else if x > x' then
maximum' (x:xs)
else
maximum' (x':xs)
>> No.348 Reply

>>347
Преимущество в том, что простые конструкции, которые понятны и так будут занимать меньше места.

А вообще, сила хаскеля, конечно, не в этом.

>> No.349 Reply

>>348
Гм, преимущества кода не в краткости, а в читаемости, нет?

Переписать >>347 на питоне не составляет труда.

>> No.350 Reply

>>349
Нет, он остается кратким и в тоже время читаемым.

let isPrime x n = 
if n == 1 then True
else if x `mod` n == 0
then False
else isPrime x (n - 1)
in filter (\x -> isPrime x (x `div` 2)) [2..]

Вот, например. Бесконечный список простых числе. Сомневаюсь, что так можно сделать на питоне (одним выражением).

>> No.351 Reply

>>350
Домой приду, посмотрю, может и можно. Принципиальных препятствий не вижу.

>> No.352 Reply

>>351
Насколько я помню, в питоне нет аналогов let..in.

>> No.354 Reply

var max,i:integer;
begin
writeln('Input number');//Вывод на экран
read(max); //ввод числа с клавы, первое число и будет максимальным(пока)
repeat

      read(i); //ввод следующего числа с клавы
if max<i then //проверка
max:=i; //если условие выполнено

//присваивеаем (максимальным будет i)
until i=0; //если i равно 0 идем ниже иначе к
//repeat
writeln('Max:',max); //вывод максимального числа
end.

>> No.355 Reply

>>350

def isPrime(x, n) :
if n == 1 :
return True
elif x % n == 0 :
return False
else :
return isPrime(x, n-1)
# Children, don't try this at home
for x in (print(x) for x in range(2,100) if isPrime(x, x // 2)) : pass
>> No.356 Reply

>>355

>одним выражением
>> No.357 Reply

>>356
Ты упоротый? В питоне синтаксически надо после объявления функции энтер нажмать. А так это одно выражение.

>>352
Потому что аналог let - это обычное присваивание, сюрприз?

>>355
Лол, можно даже боле похоже с использованием фильтра сделать, чтоб совсем похоже было.

>> No.358 Reply

>>357

>Потому что аналог let - это обычное присваивание

Точнее либо присваивание, либо объявление функции.

>> No.360 Reply

>>357
Ты что дебил совсем? Какой нахуй ентер ему нажимать? ОДНИМ выражением мне сделай или иди нахуй.
Одним выражением значит можно записать на одной строчке.

Нельзя записать — твой питон соснул хуйцов, о чем я уже давно сказал.

>> No.361 Reply
File: 1235157725174.jpg
Jpg, 55.33 KB, 452×604 - Click the image to expand
edit Find source with google Find source with iqdb
1235157725174.jpg

>>360

>Одним выражением значит можно записать на одной строчке.

Потрфель собрал?

>> No.362 Reply

>>358
Ты точно дебил.
http://en.wikibooks.org/wiki/Haskell/Next_steps#Let_Bindings

Присваивание у него, быдлокодеришко на петуне.

>> No.363 Reply

>>361
По делу-то тебе ответить нечего, говна кусок. Убейся, ничтожество.

>> No.364 Reply

>>362
Ты дурак?
Код на хаскелле:

roots a b c =
let disc = sqrt (b*b - 4*a*c)
twice_a = 2*a
in ((-b + disc) / twice_a,
(-b - disc) / twice_a)

Код на любом не-функциональном языке:

def roots(a, b, c):
disc = sqrt (b*b - 4*a*c)
twice_a = 2*a
return [(-b + disc) / twice_a, (-b - disc) / twice_a)]

Или объявление переменных - офигенная фишка Хаскеля, лол?
>>363
Да, да, иди попрогай на своём бесполезном, никому не нужном хаскелле. Самое забавное, что даже лисп/схема больше используются.

>> No.365 Reply

>>364
Ты же упоротый.

>disc = sqrt (b*b - 4*a*c)
>twice_a = 2*a

Это переменные, а не функции.

А вот так можно?

roots a b c =
let disc = sqrt (b*b - (twice . twice $ a) * c)
twice = (2*)
in ((-b + disc) / (twice a),
(-b - disc) / (twice a))
>Да, да, иди попрогай на своём бесполезном, никому не нужном хаскелле.

Orly? http://haskell.org/haskellwiki/Applications_and_libraries

>> No.366 Reply

>>365

>Это переменные, а не функции.

Это из твоей же ссылки.

>twice = (2*)

Это такая нативная обфускация, лол? К счастью питон такого не позволяет. Но можно сделать например так:

 def roots(a, b, c):
twice = lambda x: 2 * x
disc = sqrt(b * b - (twice(twice(a))) * c)
return [(-b + disc) / (twice(a)), (-b + disc) / (twice(a))]

Причём лямбда, имхо, плохой тон. Алсо, будь любезен, скажи возможный профит от twice = (2*).

>Orly?

YARLY.

>> No.367 Reply

>>366

>Это из твоей же ссылки.
>>twice_a = 2*a

В хаскелле это тоже функция, представь себе.

>Это такая нативная обфускация, лол?

Лолшто? Читай про каррирование, быдло. http://en.wikipedia.org/wiki/Currying

>Алсо, будь любезен, скажи возможный профит от twice = (2*).

Опять же, читай ссылку выше.

>YARLY.

Что, подавилось пруфами, быдло?

>Но можно сделать например так:

А так?

roots a b c =
let disc = sqrt (b*b - (mul 4 a) * c)
mul x = (x*)
in ((-b + disc) / (mul 2 a),
(-b - disc) / (mul 2 a))

Алсо, «(twice(twice(a)))» выглядит пиздец как ущербно.

>> No.368 Reply
File: 1235196149769.jpg
Jpg, 100.11 KB, 639×479 - Click the image to expand
edit Find source with google Find source with iqdb
1235196149769.jpg

Я хотел подружиться с Хаскелем, но Хаскель не захотел со мной дружить.

>> No.369 Reply

>>368
にゃ? :3

  1. http://learnyouahaskell.com/chapters
  2. http://book.realworldhaskell.org/read/

Именно в таком порядке.



Password:

[ /tv/ /rf/ /vg/ /a/ /b/ /u/ /bo/ /fur/ /to/ /dt/ /cp/ /oe/ /bg/ /ve/ /r/ /mad/ /d/ /mu/ /cr/ /di/ /sw/ /hr/ /wh/ /lor/ /s/ /hau/ /slow/ /gf/ /vn/ /w/ /ma/ /azu/ /wn/ ] [ Main | Settings | Bookmarks | Music Player ]