云课五分钟-02第一个代码复现-终端甜甜圈C++

前篇


云课五分钟-01课程在哪里-无需安装网页直达-


代码复现通过云课,会非常快捷。


视频

云课五分钟-02第一个代码复现-终端甜甜圈C++


文本

如何使用g++

使用g++编译和链接C++程序的基本步骤如下:

  1. 编写源代码:首先,你需要编写C++源代码,并保存为.cpp文件。例如,你可以创建一个名为hello.cpp的文件,其中包含一个简单的Hello World程序。

  2. 打开终端:打开你的终端或命令行界面。

  3. 导航到源代码目录:使用cd命令导航到包含源代码文件的目录。例如,如果你的源代码文件在名为my_project的目录中,你可以使用cd my_project进入该目录。

  4. 使用g++编译代码:使用g++编译你的源代码。基本的语法是:

g++ [options] filename

例如,要编译hello.cpp文件,你可以输入以下命令:

g++ -o hello hello.cpp

在上面的命令中,-o hello指定输出文件的名称,即生成的可执行文件将命名为hello
5. 运行可执行文件:如果编译成功,g++将生成一个可执行文件。在上面的示例中,它将生成一个名为hello的可执行文件。你可以通过在终端中输入以下命令来运行它:

./hello

如果一切顺利,它将运行你的程序并显示输出。

请注意,这只是使用g++的基本方法。g++有很多编译选项和参数可以使用,包括优化级别、警告级别、调试信息等。你可以通过查阅g++的文档或使用man g++命令在终端中查看更多详细信息。

此外,对于大型项目,通常使用构建系统(如Make或CMake)来自动化编译和构建过程,以确保代码的正确组织和高效编译。

蓝桥ROS机器人之C++系列奇妙甜甜圈_c++ 甜甜圈


#include <stdio.h>
#include <math.h>
#include <cstring>
#include <unistd.h>
 
int main() {
    float A = 0, B = 0;
    float i, j;
    int k;
    float z[1760];
    char b[1760];
    printf("\x1b[2J");
    for (;;) {
        memset(b, 32, 1760);
        memset(z, 0, 7040);
        for (j = 0; j < 6.28; j += 0.07) {
            for (i = 0; i < 6.28; i += 0.02) {
                float c = sin(i);
                float d = cos(j);
                float e = sin(A);
                float f = sin(j);
                float g = cos(A);
                float h = d + 2;
                float D = 1 / (c * h * e + f * g + 5);
                float l = cos(i);
                float m = cos(B);
                float n = sin(B);
                float t = c * h * g - f * e;
                int x = 40 + 30 * D * (l * h * m - t * n);
                int y = 12 + 15 * D * (l * h * n + t * m);
                int o = x + 80 * y;
                int N = 8 * ((f * e - c * d * g) * m - c * d * e - f * g - l * d * n);
                if (22 > y && y > 0 && x > 0 && 80 > x && D > z[o]) {
                    z[o] = D;
                    b[o] = ".,-~:;=!*#$@"[N > 0 ? N : 0];
                }
            }
        }
        printf("\x1b[H");
        for (k = 0; k < 1761; k++) {
            putchar(k % 80 ? b[k] : 10);
            A += 0.00004;
            B += 0.00002;
        }
        usleep(30000);
    }
    return 0;
}

这段代码是一个基于终端的动画程序,它在终端中生成一个动态变化的图形。该程序使用了一系列数学函数(如正弦、余弦)来计算出图形上每个点的位置,然后将这些点绘制到终端上。下面是对代码的详细分析:

  1. 包含头文件:程序包含了必要的头文件,包括标准输入输出库stdio.h,数学库math.h,字符串处理库cstring和Unix标准库unistd.h
  2. 变量声明:在main()函数中,声明了一些变量,包括浮点数A、B、i、j和整数k。还声明了两个大小为1760的浮点数组z和字符数组b。
  3. 清屏操作:使用printf("\x1b[2J");清空终端屏幕。
  4. 无限循环:程序进入一个无限循环,循环体中的代码用于生成动画效果。
  5. 初始化操作:在每次循环开始时,使用memset()函数对字符数组b和浮点数组z进行初始化。
  6. 双重循环:使用两层嵌套循环,循环变量为i和j,它们的初始值都为0,分别每次增加0.02和0.07,直到达到6.28。
  7. 计算:在循环中,进行一系列的数学计算,包括正弦、余弦等函数的计算,以及一些浮点数的加减乘除运算。
  8. 判断和赋值:根据计算结果,判断某些条件是否满足,如判断y的范围和x的范围,以及D是否大于z[o]等。如果条件满足,则更新数组z和b中对应元素的值。
  9. 打印图形:使用printf("\x1b[H");将光标移动到终端的左上角位置,然后通过循环遍历数组b,将字符逐个输出到终端上。同时,A和B的值也在每次循环中微调,以实现动画效果。
  10. 延时:使用usleep(30000);函数使程序暂停30毫秒,以控制动画的速度。

总结起来,这段代码通过数学计算生成图形,并在终端上动态显示该图形。通过调整A和B的值,以及使用延时函数,实现了动画效果。整个程序运行在一个无限循环中,除非手动终止程序,否则它将一直运行下去。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/144386.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Docker学习——⑧

文章目录 1、什么是 Docker Compose(容器编排)2、为什么要 Docker Compose&#xff1f;3、Docker Compose 的安装4、Docker Compose 的功能和使用场景5、Docker Compose 文件&#xff08;docker-compose.yml&#xff09;5.1 文件语法版本5.2 文件基本结构及常见指令 6、Docker …

【C#学习】串口编程

文章目录 第一步&#xff1a;加入串口控件第二步&#xff1a;加入模块第三步&#xff1a;编写相关函数功能获取所有串口资源设置和打开关闭串口发送字符串&#xff08;string&#xff09;发送byte检查串口状态接受byte查询所有可用串口 第一步&#xff1a;加入串口控件 第二步&…

Elasticsearch7 入门 进阶

1、全文检索 1.1、数据分类 按数据分类的话&#xff0c;主要可以分为以下三类&#xff1a; 结构化数据&#xff1a;固定格式、有限长度&#xff0c;比如mysql存的数据非结构化数据&#xff1a;不定长、无固定格式&#xff0c;比如邮件、Word文档、日志等半结构化数据&#xf…

Git 工作流程、工作区、暂存区和版本库

目录 Git 工作流程 Git 工作区、暂存区和版本库 基本概念 Git 工作流程 本章节我们将为大家介绍 Git 的工作流程。 一般工作流程如下&#xff1a; 克隆 Git 资源作为工作目录。在克隆的资源上添加或修改文件。 如果其他人修改了&#xff0c;你可以更新资源。在提交前查看…

抖音小程序开发全攻略:如何规划项目和选择合适的开发团队

在数字化时代&#xff0c;抖音小程序成为企业推广和服务的重要渠道。本文将为您提供抖音小程序开发的全面攻略&#xff0c;重点介绍如何规划项目和选择合适的开发团队&#xff0c;并附有一些关键的技术代码示例。 1. 项目规划 在开始抖音小程序开发之前&#xff0c;详细的项…

11月14日星期二今日早报简报微语报早读

11月14日星期二&#xff0c;农历十月初二&#xff0c;早报微语早读。 1、江西南城县&#xff1a;限时发放购房补贴政策&#xff0c;三孩家庭每平方米最高补贴500元&#xff1b; 2、2023年中国内地电影市场累计票房突破500亿元&#xff1b; 3、市场监管总局&#xff1a;在全国…

读写分离(基于mycat)和全同步复制

一、mycat实现读写分离&#xff08;VIP机制&#xff09; &#xff08;一&#xff09;配置主从复制 &#xff08;二&#xff09;部署mycat 1、安装Java 2、下载mycat安装包 3、解压mycat包 4、设置变量环境 5、启动mycat &#xff08;三&#xff09;客户端连接数据库 1、安装…

(论文阅读32/100)Flowing convnets for human pose estimation in videos

32.文献阅读笔记 简介 题目 Flowing convnets for human pose estimation in videos 作者 Tomas Pfister, James Charles, and Andrew Zisserman, ICCV, 2015. 原文链接 https://arxiv.org/pdf/1506.02897.pdf 关键词 Human Pose Estimation in Videos 研究问题 视频…

火车头采集器如何设置代理IP

火车头采集器作为一种强大的数据抓取工具&#xff0c;已经被很多人熟知&#xff0c;它最大的优势就是设置代理IP确保采集过程的顺利进行。 今天我们就来说说&#xff0c;火车头采集器是怎么设置代理IP的。 1.打开火车头采集器软件&#xff0c;在打开的界面中点击http二级代理…

使用select实现定时任务

selectOutOfTime.c里边的代码如下&#xff1a; #include<stdio.h> #include<sys/time.h> #include<sys/types.h> #include<unistd.h> #include <string.h>#define BUF_SIZE 100int main(void){fd_set reads;struct timeval tv;int errorNum;cha…

【数据结构】面试OJ题——带环链表(数学推论)

目录 1.环形链表Ⅰ ​编辑 思路 &#xff1a; 思路拓展 问题一&#xff1a; 问题二&#xff1a; 总结&#xff1a; 问题三&#xff1a; 证明总结第三点 总结&#xff1a; 2. 环形链表Ⅱ 思路一 思路二 3.相交链表 思路&#xff1a; 1.环形链表Ⅰ 141. 环形链…

AI生成图片教程(基于DALL-E3)

目录 前言new bingImage Creator 前言 今天登录GPT时发现openai的官网显示其有生成图片的模型DALL-E3&#xff0c;于是想试一试其效果如何。 奈何ChatGPT只能在付费版上使用&#xff0c;但是这个DALL-E3其实免费使用。 使用途径有两个&#xff1a; new bing 进入new bing 很…

好心提醒下,幼师姐妹们要知道啊

幼师家人们在不在&#xff1f;在不在&#xff1f; 不会还有姐妹在自己写教案&#xff0c;写总结&#xff0c;写评语啥的吧&#xff0c;这个好东西真的要知道啊&#xff01;&#xff01; 只要输入关键词&#xff0c;马上就能得到你想要的内容&#xff0c;真的很强啊&#xff0…

sinc 函数

See https://wuli.wiki/online/sinc.html 公式(3)的证明见 https://wuli.wiki/online/JdLem.html#ex_JdLem_1 百度百科

5G车载网关让医院无人配送车“灵活“起来

​ 5G车载网关应用于无人医院配送车 随着社会老龄化加剧和医疗需求增长,为患者提供及时、便捷的药品配送服务成为医院的一项重要任务。传统的人工配送方式效率低下,无法满足患者的实时配送需求。针对这一痛点,5G车载网关为无人医院配送车提供了有力的技术支撑。 5G车载网关集成…

ubuntu小技巧30--23.10桌面版安装钉钉启动报错undefined symbol: FT_Get_Color_Glyph_Layer

ubuntu小技巧30-- 23.10桌面版安装钉钉启动报错undefined symbol: FT_Get_Color_Glyph_Layer 介绍解決方法说明 介绍 近期在电脑上安装了 ubuntu 23.10桌面版本, 安装最新版钉钉后无法正常打开软件&#xff0c;报错 undefined symbol: FT_Get_Color_Glyph_Layer &#xff0c;具…

安装部署PowerDNS--实现内网DNS解析(use)

使用PowerDNS实现内网DNS解析_powerdns-admin-CSDN博客 https://www.cnblogs.com/guangdelw/p/17348982.html 一、概念介绍 PowerDNS是一个域名解析服务&#xff0c;官网提供了三个组件&#xff1a;Authoritative、Recursor、dnsdist&#xff0c;分别用来作为权威服务器、域名递…

C++ VS2015安装教程,下载和安装(下载地址+图解+详细步骤)

说明&#xff1a;VS2015的三个版本分别为&#xff1a; Visual Studio Community(社区版)&#xff1a;满足大部分程序员的需求&#xff08;推荐&#xff09; Visual Studio Professional(专业版) Visual Studio Enterprise(企业版) 1、下载地址(这里只提供Community版) htt…

5 个基本步骤,学会创建自己的CRM流程

客户关系管理 (CRM) 系统是必备的客户数据库工具&#xff0c;用于跟踪潜在客户、现有客户、接触点等。使用可靠的技术来跟踪所有客户数据固然重要&#xff0c;但为该技术制定的流程更为关键。因这是用来管理客户和整个客户生命周期的策略。 什么是CRM流程&#xff1f; CRM流程…

如何利用「深度上下文兴趣网络」提升点击率?

美团到店广告平台在用户行为序列建模算法的迭代落地中&#xff0c;基于对业务实际场景中用户决策心智的观察&#xff0c;创新性地提出了深度上下文兴趣网络&#xff0c;精确建模了用户的兴趣&#xff0c;提升了CTR等线上业务指标。本文介绍了相应算法背后的动机、建模方法以及工…