Alair 0 Опубликовано: 12 октября 2007 (изменено) Вот, спешиал фо ю, задачка, что делал Кевин: CLS INPUT "x,y,z"; x, y, z IF x < y + z AND y < x + z AND z < x + y THEN PRINT "exists" IF x >= y THEN IF x >= z THEN max = x min1 = y min2 = z ELSE max = z min1 = y min2 = x END IF ELSE IF y >= z THEN max = y min1 = x min2 = z END IF END IF IF max ^ 2 < (min1 ^ 2 + min2 ^ 2) THEN PRINT "ostro" ELSE PRINT "ne ostro" END IF ELSE PRINT "does not exist" END IF Изменено 12 октября 2007 пользователем Alair 0 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
KeViN 0 Опубликовано: 12 октября 2007 попробывал последнюю предложение свята(пост выше), у мну почему то остроугольность не показывает, за то в моей проге всё норм. 0 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alair 0 Опубликовано: 12 октября 2007 попробывал последнюю предложение свята(пост выше), у мну почему то остроугольность не показывает, за то в моей проге всё норм. В твоём варианте он не определяет большую сторону. 0 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
KeViN 0 Опубликовано: 12 октября 2007 интересно, как это в твоём варианте он определяет большее из a,b,c? 0 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Maksim 0 Опубликовано: 12 октября 2007 (изменено) остро тупо.. а где прямо?:) 3-4-5 введите чо получиться?;) Изменено 12 октября 2007 пользователем Maksim 0 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alair 0 Опубликовано: 12 октября 2007 (изменено) интересно, как это в твоём варианте он определяет большее из a,b,c? Этот кусок кода: IF x >= y THEN IF x >= z THEN max = x min1 = y min2 = z ELSE max = z min1 = y min2 = x END IF ELSE IF y >= z THEN max = y min1 = x min2 = z END IF END IF Соответственно max - максимальное min1, min2 - два других числа. 2 Maksim Прямо им не нужно учитывать, вообще там даже не надо определять тупой ли он. Задание "Острый ли". Кстати да, нужно исправить, что б не писал "тупо". (исправил) Изменено 12 октября 2007 пользователем Alair 0 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Player1 0 Опубликовано: 13 октября 2007 IF x >= y THEN IF x >= z THEN max = x min1 = y min2 = z ELSE max = z min1 = y min2 = x END IF ELSE IF y >= z THEN max = y min1 = x min2 = z END IF END IF Во-первых, после последнего IF должен идти ещё один ELSE (случай x<y<z у Вас, кажется, остался неохваченным) Во-вторых, всё же лучше как-то так: max=x min1=y min2=z IF min1>max THEN tmp=max max=min1 min1=tmp END IF IF min2>max THEN tmp=max max=min2 min2=tmp END IF Ну а совсем здорово написать отдельную подпрограмму для находжения наибольшего элемета в массиве из N элементов и использовать в данной программе для случая N=3. 0 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alair 0 Опубликовано: 13 октября 2007 Во-первых, после последнего IF должен идти ещё один ELSE (случай x<y<z у Вас, кажется, остался неохваченным) Посмотрите внимательней, он охватывается. Во-вторых, всё же лучше как-то так: max=x min1=y min2=z IF min1>max THEN tmp=max max=min1 min1=tmp END IF IF min2>max THEN tmp=max max=min2 min2=tmp END IF Я думал сделать похожее, но решил, что лучше сделать нагляднее. Ну а совсем здорово написать отдельную подпрограмму для находжения наибольшего элемета в массиве из N элементов и использовать в данной программе для случая N=3. Это конечно проще, но они, к сожаленю, массивов ещё не проходили. 0 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Player1 0 Опубликовано: 13 октября 2007 IF x >= y THEN (1)IF x >= z THEN (2) max = x min1 = y min2 = z ELSE max = z min1 = y min2 = x END IF (3) ELSE (4) IF y >= z THEN (5) max = y min1 = x min2 = z END IF END IF x<y - значит, первый IF (1) не срабатывает. Кусок (2-3), соответсвенно, весь пропускаем. Переходим к ELSE (4). Поскольку y<z, то и IF (5) не срабатывает. И где же охватывается эта ситуация ? 0 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alair 0 Опубликовано: 13 октября 2007 IF x >= y THEN (1)IF x >= z THEN (2) max = x min1 = y min2 = z ELSE max = z min1 = y min2 = x END IF (3) ELSE (4) IF y >= z THEN (5) max = y min1 = x min2 = z END IF END IF x<y - значит, первый IF (1) не срабатывает. Кусок (2-3), соответсвенно, весь пропускаем. Переходим к ELSE (4). Поскольку y<z, то и IF (5) не срабатывает. И где же охватывается эта ситуация ? Гм... жутко извиняюсь, я действительно не прав( 0 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
KeViN 0 Опубликовано: 21 октября 2007 да, бывает, ты пропустил один END IF 0 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах