vim 入门笔记
vim 被称为编辑器之神,学习难度很大,但是熟练掌握后可以更高效地敲代码,因此学一下。 安装与配置文件 vim 默认是命令行版本的,而 gvim 是 GUI 版本的 vim,这里我们使用的是 Git for Windows 里面附带的 vim(不含 GUI),可以按 Linux 风格进行配置和使用,感觉比直接下载Vim 官网的 Windows 版的 gvim 更方便,便于直接把配置应用到到 Linux 服务器上。 在 vim 中输入:version可以查看很多信息,例如 1234567// vim的版本号VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Nov 22 2021 19:31:05)Included patches: 1-3582Compiled by <https://www.msys2.org/>// vim的安装模式(tiny,small,normal,big,huge等,huge的功能最全)Huge version without GUI. 还有一个列表描述了当前编译的...
web自学3——JavaScript
在简单学习了 HTML 和 CSS 之后,接下来是 JavaScript 的学习,学习的重点不是 JavaScript 作为一个脚本语言的语法内容,而是 JavaScript 对于网页的控制,参考教程:https://developer.mozilla.org。 HTML 定义了网页的内容 CSS 描述了网页的布局 JavaScript 控制了网页的行为 1. 在 HTML 中使用 JS 在 HTML 和 CSS 一起组装成一个网页之后,浏览器的 JavaScript 引擎将执行 JavaScript 代码,这保证了当 JavaScript 开始运行之前,网页的结构和样式已经就位,然后 JS 可以更新这个网页的具体内容等。 对于浏览器,它的每一个标签页使用了一个独立的运行环境,不同标签页之间没有任何联系,JS 代码也相互独立运行,一定程度上保证了信息安全。 script 标签 在 HTML 的 head 或者 body 部分都可以使用,例如: 12345678910111213<!DOCTYPE html><html...
web自学2——CSS
在简单学习了 HTML 之后,我们可以得到一个简单的静态网页,但是为了让网页呈现更加丰富的样式,一个明智的做法把样式信息和文本信息分离开,文本信息对应 HTML,样式信息对应 CSS,完成一个网页的组织分离,接下来是 CSS 的简单学习,参考教程:https://developer.mozilla.org HTML 定义了网页的内容 CSS 描述了网页的布局 JavaScript 控制了网页的行为 CSS 1. 在 HTML 中使用样式 我们最终的目标是把 CSS 文件和 HTML 文件结合起来,但是在此之前,还有一些方法可以直接在 HTML 文件中使用简单的样式: style 属性 例如添加背景色 background-color, 可以直接使用元素的style属性定义的样式 源代码如下: 1<p style="background-color: #00BFFF">可以直接使用元素的style属性定义的样式</p> 嵌入 CSS 语句 我们使用如下简单的 html 文件,在头部使用<style...
web自学1——HTML
众所周知,web 前端主要包括 HTML+CSS+JavaScript 三部分组成,其中 HTML 是超文本标记语言,CSS 是层叠样式表,JavaScript 是脚本语言。 以下学习的内容都是静态网页而非动态网页,不涉及服务器数据库之类的知识,目标之一是了解最基本的网页知识,例如可以写出几个简单的静态网页,并且利用 Hexo+Github Pages 部署,目的之二是看懂 Hexo 搭建博客的样式配置等。参考教程:https://developer.mozilla.org HTML 定义了网页的内容 CSS 描述了网页的布局 JavaScript 控制了网页的行为 HTML 1. 元素 一个典型的 html 元素如下: 1<p class="note">content</p> 其中<p>是开始标签,</p>是结束标签,中间的content是元素的内容,class="note"是标签的属性。 上述元素是成对的,包括开始标签和结束标签,元素可以相互嵌套,例如 1<p>My cat is...
Cpp MPI学习笔记
本文是关于并行计算的学习,根据具体的实现方式不同,并行计算主要考虑两类方式: 以 MPI 为代表的多进程,不共享内存,进程之间通过消息传递机制进行通信; 以 OpenMP 为代表的多线程,共享内存; 本文主要针对的是 MPI,使用 C++ 接口。后续还可能有关于 OpenMP 和专门的 C++...
Fortran学习笔记——5.其他
一些琐碎的小部分,放在最后。 自定义类型 Fortran 90 支持自定义类型,相当于 c 语言的结构体。 12345678910111213141516program main implicit none type :: person integer :: age integer :: height integer :: weight end type person type(person) :: a ! 声明a是一个person类型的变量 ! %用于提取结构体的分量 read(*,*) a%age, a%height, a%weight write(*,*) a%age, a%height, a%weight stopend program main 字符/字符串 在前面的基本数据类型的笔记中,我们特意完全忽略了字符和字符串的部分,只是在 write 语句中使用了字符串常量。 注:Fortran 对于字符串的处理效率比较慢,谨慎使用——数值计算其实也没什么字符串处理的需求。 与 c...
Fortran学习笔记——4.数组,指针与数值计算
在前三篇笔记,学习了 Fortran 作为一个编程语言,最基本的内容:变量,输入输出,流程控制和程序结构。接下来是 Fortran 的数组以及基于数组的数值计算,我认为这是 Fortran 语言最有价值的精华部分,因此特意放在了学习笔记靠后的部分,在学习了基本的语法和子程序等之后。注意,Fortran 的字符集不包括中括号[],因此与 c 语言的风格不同,Fortran 对数组分量的操作全都是使用小括号()的。 因为这部分内容比较重要,不像前几篇对 Fortran 77 的上古语法大部分进行了忽略,这一篇对于 Fortran 77 的语法也进行介绍。 一维数组 最基本的一维数组声明如下 123integer :: nums(10)integer, parameter :: len = 20real :: datas(len) 一维数组的类型可以是 integer, real, complex, logical 四种基本类型,(也可以是字符或者自定义类型,暂时不管)一维数组的长度可以是字面值常量,也可以是声明为 parameter 的整数——和 c...
Fortran学习笔记——3.子程序, 函数与模块
与 c 语言只有函数不同,Fortran 提供了子程序 subroutine,函数 function,模块 module 等多种结构。 子程序 subroutine 首先,回顾之前的 HelloWorld 1234program main implicit none write(*,*) "hello,world!"end program main 其中使用了名称为 main 的主程序 program,一个可执行程序只允许有一个 program,为了分离和复用某个功能,可以使用子程序 subroutine。 123456789101112program main implicit none write(*,*) "hello,world!" call hello() ! call 调用子程序end program mainsubroutine hello() implicit none write(*,*) "hello,subroutine!"end subroutine...
Fortran学习笔记——2.流程控制
第一部分基本内容包括了变量的声明,输入输出语句,接下来是条件语句和循环语句等运算的流程控制。 if 条件语句 无需多言,例子即可: 1234567891011121314151617if(a > 10) then ! do somethingend ifif(a > 10) then ! do 1else ! do 2end ifif(a > 10) then ! do 1else if(a > 5) then ! do 2else ! do 3end if 在 if 后面必须接 then,if 和 end if 构成一个标准的条件结构。支持 if 结构的嵌套。可以使用简单的单行 if,不需要 end 和 then。 1if(a>10) b=a 逻辑语句和逻辑运算 在 if 语句之后,顺便介绍逻辑类型和运算。逻辑类型:.true.,.false.。0 被视作 false,1 被视作 true。 12logical varvar = (a>10) 逻辑运算: Fortran...
Fortran学习笔记——1.基本内容
本系列笔记假定读者具有基础的计算机知识,以及 c/c++, Java 等至少一门现代编程语言,只学习 Fortran 的核心应用——数值计算需要的部分,对于其他的部分比如鸡肋的 Fortran 面向对象等,直接忽略(c++,Java 不香么)。我们使用 vscode+mingw(gfortran)的编程环境和编译器,环境配置过程见前文。 基本特点 固定格式 Fortran:在早期计算机使用 Fortran 进行科学计算时,需要使用穿孔卡片纸带输入源代码,因此每行的缩进/长度等格式有着极其苛刻的要求,一般全文都使用大写字符,文件名以.FOR,.for 或.f 为后缀。语法标准为 Fortran 77。如果希望感受 20 年前的 Fortran 教程风格,参考USTC Fortran 教程。 自由格式 Fortran:为了适应现代的编程风格,Fortran 标准提出了自由格式,没有那些适合打孔纸带的格式要求。一般全文的保留关键词使用小写字符,文件名以.F90、.f90 为后缀。(固定格式就应该彻底留在历史书上,我们当然应该使用自由格式编写 Fortran,使用 Fortran...