zoukankan      html  css  js  c++  java
  • Ada语言基础

      前天是程序员节,CodeForces上举办了一场比赛,要求必须使用ADA语言提交.顿时虐爆了我这个只知道pascal,C,BASIC这3种语系的菜.今天闲着看了看这种语言,一看才知道竟然是美国军方专用计算机语言.总体感觉:什么JB玩意儿,比C语言差的远了.主要是写代码时感觉几乎没啥自由度,让人十分不爽,操作还那么麻烦.

        第一个程序照例是那最经典的HW.

        然而,我将程序写到源文件之后却始终无法build,最后我放弃了最常用的直接新建一个.adb文件的方法而采用GPS.exe的新建,终于编译出了可执行文件.

        程序如下:

    with Ada.Text_IO;

    procedure Main is

    begin

       Ada.Text_IO.Put("Hello World!");

       Ada.Text_IO.New_Line;

       null;

    end Main;

    在ADA语言中采用”--”作为注释的标志,”--”之后知道行末的内容将被编译器忽略.

    with Ada.Text_IO;差不多相当于C里的#include<stdio.h>,先这么理解.

    程序框架:

    Procedure procedure_name is

    Statement1;

    Begin

    Statement2;

    End procedure_name;

    其中,statement1是对变量或函数的声明部分,statement2是程序的语句.

    为了方便,可以使用use语句:如use Ada.Text_IO;这样,在以后调用Put或者New_Line时就不用再加上”Ada.Text_IO.”了.有点类似于C++中最常用的using namespace std;

    变量的声明方法:变量名:变量类型:=初始化值

    改进版的HW程序:

    with Ada.Text_IO;

    use Ada.Text_IO;

    procedure Main is

       Str:String:="Hello World!";

    begin

       Ada.Text_IO.Put("Hello World!");

       Ada.Text_IO.New_Line;

       Put("Hello World!");

       New_Line;

       Put(Str);

       New_Line;

    end Main;

    在Ada语言中数字字面值中间可以加入下划线以帮助阅读,如454548456484与454_548_456_484就没有什么区别.不过要注意的一点是两个下划线不能连用,下划线也不能加在数字末尾.

    除此之外,Ada语言中可以直接采用2~16进制数来编写字面值,格式为Base # Number #.如5 # 1234 #,表示5进制下的1234.

    变量赋值操作符: ”:=”

    循环格式:

    循环名:

    Loop

    代码...

    End loop 循环名

    Get_Line(String,Natural):读入一行Natural返回字符串长度.

    Get(val):读入val的值.

    下标访问:A(5)表示A的索引为5的元素.

    Exit Name : 从Name的代码段里退出,类比break,return,等

    If语句格式:

    If (表达式) then

    代码段;

    End if;

    逻辑运算符:

    ’=’:返回是否相等.(“>=”,”<=”类似).

    字面值类型转换:Float(100),类比C语言中的(double)100.

     

  • 相关阅读:
    Quartus II中的Waring(转)
    gym102391J Parklife (2019-2020 XX Open Cup, Grand Prix of Korea) 启发式合并
    gym102900L Traveling in the Grid World (2020 ICPC Shanghai Site)
    gym102341C Cloyster (Radewoosh+mnbvmar Contest (supported by AIM Tech)) 二分
    codeforces1452E Two Editorials (Educational Codeforces Round 98)
    gym102798 Caesar Cipher (2020 China Collegiate Programming Contest, Weihai Site) 线段树
    gym102452 I Incoming Asteroids (2019-2020 ICPC Asia Hong Kong Regional Contest) 抽屉原理
    HDU6820 Tree (2020杭电多校第5场1007) 树形dp
    POJ 3680 Intervals
    Min25筛(引入)
  • 原文地址:https://www.cnblogs.com/dramstadt/p/3323344.html
Copyright © 2011-2022 走看看