Форум программистов, компьютерный форум, киберфорум
Наши страницы

Python

Войти
Регистрация
Восстановить пароль
 
DannyConnor
2 / 2 / 0
Регистрация: 11.10.2015
Сообщений: 39
Завершенные тесты: 1
#1

Вывод цикла в одну строку - Python

26.10.2015, 16:15. Просмотров 1275. Ответов 1
Метки нет (Все метки)

Задача: нарисовать график функции y=sin(2*3.14*x/50)/math.cos(2*3.14*x/50).
Именно:
Кликните здесь для просмотра всего текста
Построить график функции из задания 2. График представляет собой изображение из 50 символов по горизонтали и 50 символов по вертикали. Для отображения графика нужно организовать вложенные циклы. Внешний цикл выполняется 50 раз и рисует 50 строк. Внутренний цикл повторяется 50 раз и рисует 50 столбцов. Во внутреннем цикле проверяется, какой символ нужно нарисовать.
Для определения отображаемого символа используется следующее условное выражение. Если ceil(((func)-min)*50/(max-min))==50-j, то печатается символ «*», иначе печатается символ « » (пробел). В условном выражении max и min – это максимум и минимум функции, найденные в предыдущем задании. Func – это отображаемая функция. Функция «сeil» находит наименьшее целое, не большее аргумента. Все выражение масштабирует диапазон значений функций (от min до max) на диапазон от 0 до 50 и определяет, в какой строке функция пересекает соответствующий столбец.


На языке С все получается без проблем:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <stdio.h> 
#include <stdlib.h> 
#include <math.h> 
 
void main() 
{ 
    float y, max, min, h, z; 
    int i, j;
    max=sin(2*3.14/50)/cos(2*3.14/50); 
    min=max; 
    for (i=1; i<=50; i++) 
    { 
        y= sin(2*3.14*i/50)/cos(2*3.14*i/50); 
        if(y>max) 
        { 
            max=y; 
        } 
        if(y<min) 
        { 
            min=y; 
        } 
    printf("\n"); 
        for(j=1; j<=50; j++) 
        { 
            y=ceil(((sin(2*3.14*i/50)/cos(2*3.14*i/50))-min)*50/(max-min)); 
            z=50-j; 
            if (y==z) 
            { 
                printf("*"); 
            } 
            else 
            { 
                printf(" ");
            } 
        } 
    } 
printf("\n"); 
printf("%f\n", min); 
printf("%f", max); 
}
Но при выполнении аналогичной задачи на Python возникает проблема - внутренний цикл не выводит результаты в одну строку, а в столбец сразу.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import math
min=max=math.sin(2*3.14/50)/math.cos(2*3.14/50)
i=1
while i<=50:
    y=math.sin(2*3.14*i/50)/math.cos(2*3.14*i/50)
    try:
        if(y>max):
            max=y
        if(y<min):
            min=y
    except ZeroDivisionError: 
        y=1
    i+=1
    j=1
    while j<=50:
        y= math.ceil(((math.sin(2*3.14*i/50)/math.cos(2*3.14*i/50))-min)*50/(max-min))
        if y==50-j:
            print('*')
        else:
            print (' ')
        j+=1
print(max)
print(min)
Еще там с исключениями экспериментирую, ибо деление на ноль получается. Проверить нет возможности из-за проблем с внтуренним циклом.
Можно ли скомбинировать с циклом for или вообще как-то заменить? ума не приложу, в программировании нуб
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2015, 16:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывод цикла в одну строку (Python):

Вывод чисел в одну строку из цикла - Python
У меня возникла проблема при решении одной задачи на контрольной. Вот как сформулирована задача: &quot;По данному целому числу N распечатайте...

Вывод в одну строку в цикле - Python
Здравствуйте, господа. Нужна программа, которая бы выводила текст определенной формы в строку в цикле. Вот что я написал: for b in...

Вывод в одну строку в цикле - Python
Доброго времени суток!!! Господа профессионалы!!! Помогите начинающему Питону!!! Как в Питоне 3.2.2 с помощью принта в цикле вывести числа...

Вывод текущего времени в одну строку, с заменой предыдущего значения - Python
Привет всем. Есть код: from datetime import datetime while True: print(datetime.strftime(datetime.now(), &quot;%H:%M:%S&quot;)) ...

Объединить элементы в одну строку - Python
разрабатываю типо конвертера html. Есть строковый текст, выходящий на экран. Но как его поэлементно перенести в другую строку, что бы ...

Вложенные циклы for в одну строку - Python
Подскажите плиз как можно покороче записать вложенные циклы. У меня есть список словарей. Нужно в словаре убрать в каждом ключе первый...

1
Marinero
Модератор
Эксперт NIX
1826 / 1570 / 476
Регистрация: 02.03.2015
Сообщений: 5,142
26.10.2015, 16:28 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Python
1
print('*', end=" ")
выводит в 1 строку с пробелами
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.10.2015, 16:28
Привет! Вот еще темы с ответами:

Как записать цикл в одну строку? - Python
Доброго времени суток. Начал учить питон по книге Лутц М. - Изучаем Python (4-е издание)- 2011. Дочитал до того где описывают цыкл...

Вывести сообщения из нескольких циклов в одну строку - Python
Для начала вопрос, такое вообще возможно? Python 2.7 Задача стоит простая, ввести предложение, вывести в определённом порядке по кол-ву...

Как считать несколько переменных в одну строку - Python
Недавно начал осваивать python и сразу появилась проблема. Сразу появилась проблема. Как считать несколько переменных в одну строчку. ...

Как выводить результат программы в одну строку? - Python
Задача Напишите программу, которая принимает на вход список чисел в одной строке и выводит на экран в одну строку значения, которые...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru