欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言實現(xiàn)繪制余弦曲線

 更新時間:2024年01月03日 11:11:23   作者:透明水晶  
這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)繪制余弦曲線的相關(guān)知識,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

1.要求

在屏幕上用"*"顯示0°~360°的余弦曲線cos(x)曲線。

2.問題分析與算法設(shè)計

如果在程序中使用數(shù)組,這個問題十分簡單。但若規(guī)定不能使用數(shù)組,問題就變得不容易了。

關(guān)鍵在于余弦曲線在0°~360°的區(qū)間內(nèi),一行中要顯示兩個點;而對一般的顯示器來說,只能按行輸出,即:輸出第一行信息后,只能向下一行輸出,不能再返回到上一行。為了獲得本題要求的圖形就必須在一行中一次順序輸出兩個"*"。

為了同時得到余弦函數(shù) cos ( x )圖形在一行上的兩個點,考慮利用 cos ( x )的左右對稱性。將屏幕的行方向定義為 x ,列方向定義為 y ,則0°~180°的圖形與180°~360°的圖形是左右對稱的。若定義圖形的總寬度為62列,計算出 x 行0°~180°時 y 點的坐標(biāo) m ,那么在同一行與之對稱的180°~360°的 y 點的坐標(biāo)就應(yīng)為62- m 。程序中利用反余弦函數(shù) acos 計算坐標(biāo)( x , y )的對應(yīng)關(guān)系。

使用這種方法編出的程序短小精練,體現(xiàn)了一定的技巧。

3.程序

3-1.源碼

001_cos.c · cProgram/100Example - 碼云 - 開源中國 (gitee.com)

/*******************************************************************
 *   > File Name: 001_cos.c
 *   > Author: fly
 *   > Mail: XXXXXXXX@icode.com
 *   > Create Time: 2020年06月01日 星期一 09時24分59秒
 ******************************************************************/

#include <stdio.h>
#include <math.h>
#include "debug.h"

void test_acos(void)
{
    double x = 0.0;
    double y = 0.0;
    int m = 0;

    for(x= -1.0; x<=1.0; x+=0.1)
    {
        y = acos(x);
        m = y * 10;
        printf("x = %f, y = %f[%d]\n", x, y, m);
    }
}

void printf_cos(void)
{
    printf("========Draw Cos(x)========\n");

    double x = 0.0, y = 0.0;
    int m, n;

    for(y = 1.0; y >= -1.0; y-=0.1)
    {
        x = acos(y);
        m = x * 10;
        //printf("(%f, %f)%d\n", x,y,m);
        for(n = 0; n <=m; n++)
            printf(" ");
        printf(RED"*"NONE);

        for(; n<62-m; n++)
            printf(" ");

        printf(RED"*\n"NONE);
    }
}

int main(int argc, char* argv[])
{
    DBG_PRINTF("Hello, world !\n");
    //test_acos();
    printf_cos();

    return 0;
}
#ifndef __DEBUG_H__
#define __DEBUG_H__

#include <string.h>

#define DBG_PRINTF_FUNC         (1)
#define DBG_PRINTF_SWITCH       (1)

// color debug
#define NONE            "\e[m"
#define BLACK           "\e[0;30m"
#define RED                     "\e[0;31m"
#define GREEN           "\e[0;32m"
#define YELLOW          "\e[0;33m"
#define BLUE            "\e[0;34m"

#ifdef DBG_PRINTF_FUNC
#define DBG_PRINTF(fmt, args...)        \
                do{\
                printf("<<FILE:"BLUE"%s"NONE" LINE:"RED"%d"NONE" FUNC:"GREEN"%s"NONE">>", \
                strrchr(__FILE__, '/')?strrchr(__FILE__, '/')+1:__FILE__, __LINE__, __FUNCTION__);\
                printf(fmt, ##args);\
                }while(0)
#else
#define DBG_PRINTF(fmt, args...)
#endif /* DBG_PRINTF_FUNC */

#endif /* __DEBUG_H__ */

3-2.makefile

SRC = ${wildcard *.c}
BIN = ${patsubst %.c, %, $(SRC)}
CFLAGS = -g -Wall
#INC = -lm
LIBS = -lm

all:$(BIN)

$(BIN):%:%.c
        $(CC) -o $@ $< $(CFLAGS) $(LIBS)

clean:
        $(RM) a.out $(BIN)

.PHONY:all clean

4.運行

到此這篇關(guān)于C語言實現(xiàn)繪制余弦曲線的文章就介紹到這了,更多相關(guān)C語言繪制余弦曲線內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Qt實現(xiàn)TCP客戶端和服務(wù)器通訊程序

    Qt實現(xiàn)TCP客戶端和服務(wù)器通訊程序

    這篇文章主要為大家詳細(xì)介紹了Qt實現(xiàn)TCP客戶端和服務(wù)器通訊程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • C++實現(xiàn)關(guān)機功能詳細(xì)代碼

    C++實現(xiàn)關(guān)機功能詳細(xì)代碼

    大家好,本篇文章主要講的是C++實現(xiàn)關(guān)機功能詳細(xì)代碼,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • libevent庫的使用方法實例

    libevent庫的使用方法實例

    這篇文章主要介紹了libevent庫的使用方法實例,有需要的朋友可以參考一下
    2013-12-12
  • Qt數(shù)據(jù)庫應(yīng)用之實現(xiàn)數(shù)據(jù)打印到紙張

    Qt數(shù)據(jù)庫應(yīng)用之實現(xiàn)數(shù)據(jù)打印到紙張

    關(guān)于Qt打印內(nèi)容到紙張,網(wǎng)上的辦法非常多,比如有些直接用painter繪制,逐步控制分頁打印。本文介紹的方法則是將內(nèi)容作為html設(shè)置到文檔對象,再調(diào)用文檔對象的print方法傳入QPrinter對象打印,感興趣的同學(xué)可以了解一下
    2022-01-01
  • C++之重載 重定義與重寫用法詳解

    C++之重載 重定義與重寫用法詳解

    這篇文章主要介紹了C++之重載 重定義與重寫用法詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • c++中堆棧及創(chuàng)建對象示例代碼

    c++中堆棧及創(chuàng)建對象示例代碼

    這篇文章主要給大家詳細(xì)介紹了c++如何實現(xiàn)堆棧及創(chuàng)建對象,文中先進(jìn)行了簡單的介紹,而后給出了詳細(xì)的示例代碼及注釋,相信對大家的理解和學(xué)習(xí)很有幫助,有需要的朋友們下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。
    2016-12-12
  • C 語言基礎(chǔ)教程(我的C之旅開始了)[四]

    C 語言基礎(chǔ)教程(我的C之旅開始了)[四]

    C 語言基礎(chǔ)教程(我的C之旅開始了)[四]...
    2007-02-02
  • OpenCV基于稠密光流實現(xiàn)視頻跟蹤詳解

    OpenCV基于稠密光流實現(xiàn)視頻跟蹤詳解

    這篇文章主要為大家詳細(xì)介紹了OpenCV如何基于稠密光流實現(xiàn)視頻跟蹤功能,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,需要的可以參考一下
    2023-02-02
  • C++拋出和接收異常的順序

    C++拋出和接收異常的順序

    這篇文章主要介紹了C++拋出和接收異常的順序,幫助大家更好的理解和學(xué)習(xí)C++,感興趣的朋友可以了解下
    2020-08-08
  • C++入門淺談之類和對象

    C++入門淺談之類和對象

    C++ 是一門面向?qū)ο蟮木幊陶Z言,理解 C++,首先要理解類(Class)和對象(Object)這兩個概念。下面和小編一起來學(xué)習(xí)吧
    2021-10-10

最新評論