文档章节

Pascal练习讲解

yemaster
 yemaster
发布于 2017/01/20 19:54
字数 821
阅读 12
收藏 0

字符串函数
length(S); //求S的长度
pos(p,s);//在S中找子串P
char:字符;
string:字符串;
———————————分—隔—线————————————
注意:以后每一题符合以下条件
          ——————————
          |      时间限制:1秒        |
          |    内存限制:128 MB   |
          ——————————
———————————分—隔—线————————————
                                     Problem A:键盘
题目描述
大家都知道,现在使用键盘的是下列字母:
qwertyuiop
asdfghjkl;
zxcvbnm,./
BSNY在练习盲打,但是有时候,他盲打会偏移一个,或者左偏或者
右偏,如果左偏,比如BSNY想打f,实际按了d;反之,如果右偏,想
打d,实际打了f。
为了方便,我们用L,R表示左偏和右偏。
给你BSNY打出来的字母,问BSNY原本想打的字母是什么?
输入
先输入L或R
然后一行字符
输出
输出BSNY原本想打的字符
样例输入
R
s;;upimrrfod;pbr
样例输出
allyouneedislove
提示
【数据规模和约定】
保证打的字符在上述键盘框内, 字符串长度小于10000
【参考程序(附解释)】
const
  s='qwertyuiopasdfghjkl;zxcvbnm,./';//模拟键盘
var
  x:char;
  a:array[1..10000] of char;    
  q,t,i:longint;
begin
  readln(x);
  while not(eoln) do    //读入打的字符
  begin
    inc(t);
    read(a[t]);
  end;
  for i:=1 to t do           //进行还原原打的字符
  begin
    q:=pos(a[i],s);
    if x='R' then write(s[q-1])
    else write(s[q+1]);
  end;
end.
———————————分—隔—线————————————
                                  Problem B   排序基础
【题目描述】
对n(n≤1000000)个数进行排序
【输入】
一个数n,第二行是一些乱七八糟的东西——N个数,不超过21000
00000
【输出】
也是一些乱七八糟的东西——排好序后的N个数
【样例输入】
4
5 2 3 4
【样例输出】
2 3 4 5
【分析】
这道题数据太大,用快速排序比较方便
【解答(附解释)】
var
  i,n:longint;
  a:array[1..1000000] of longint;

procedure qsort(l,r:longint);        //快速排序
var
  i,j,m,t:longint;
begin
  i:=l;
  j:=r;
  m:=a[(l+r)div 2];                        //☑中间数
  repeat
    while a[i]<m do i:=i+1;           {如果左边数比中间数小,则
继续找}
    while a[j]>m do j:=j-1;
    if not(i>j) then
    begin
      t:=a[i];                         //交换
      a[i]:=a[j];
      a[j]:=t;
      i:=i+1;                             //继续找
      j:=j-1;
    end;
  until i>j;
  if l<j then qsort(l,j);
  if i<r then qsort(i,r);
end;
begin
  readln(n);
  for i:=1 to n do
  read(a[i]);
  qsort(1,n);
  for i:=1 to n do
  if i<>n then write(a[i],' ')
  else write(a[i]);
end.
———————————分—隔—线————————————
                               Problem C   2^N 的计算
题目描述
任意给定一个正整数N(N<=100),计算2的n次方的值。
输入
输入一个正整数N。
输出
输出2的N次方的值。
样例输入
5
样例输出
32
提示
高精度计算
【参考程序】
var
  a:array[1..100]of longint;
  i,j,len,n:longint;
begin
  fillchar(a,sizeof(a),0);
  readln(n);
  a[1]:=1;len:=1;
  for i:=1 to n do
  begin
    for j:=1 to len do
    a[j]:=a[j]*2;
    for j:=1 to len-1 do
    if a[j]>=10 then
    begin
      a[j+1]:=a[j] div 10+a[j+1];
      a[j]:=a[j] mod 10;
    end;
    while a[len]>=10 do
    begin
      a[len+1]:=a[len] div 10;
      a[len]:=a[len]mod 10;
      inc(len);
    end;
  end;
  for i:=len downto 1 do write(a[i]);
  writeln;
end.
———————————分—隔—线————————————
后记:由于作者技术有限,不能避免有一些错误。望各大读者可以
提出意见,我们会改正!

© 著作权归作者所有

yemaster
粉丝 0
博文 48
码字总数 32717
作品 0
宁波
程序员
私信 提问
计算机基础导论 学习总结 上

课程大纲:从构建一个简单的搜索引擎项目出发,介绍构建过程中需要用到的技术,大致分为三个部分: 爬取数据 建立索引 页面排序 第一单元 开始你的第一行代码 课程前三个单元的目标是创建一个...

Nautilus1
2017/11/28
0
0
自己手动编写一个简单的解释器 Part 1

“如果你不了解编译器是如何工作的,那么你就不了解计算机是如何工作的。如果你无法确保100%掌握编译器的工作原理,那么你就是不了解其工作原理” — Steve Yegge 好了,思考一下这个问题。无...

Aaron74
2015/07/01
16.4K
23
Python为什么这么火?

人生苦短,我用Python!对于学习Python的人来说肯定特别熟悉,当然这要归功于python强大的功能:它能把复杂的语言简单化,满足企业运维日常的数据分析和运维系统的管理,编写自动化运维平台,...

让往事随风
2016/05/03
555
2
接吻的艺术

接吻的艺术--为您提供了对接吻比较全面的认识。分为好处、指导、文化等板块。 讲解接吻的主要好处。(美容、护齿、免疫、减肥、止痛、减压、健康)。 指导 讲解接吻的练习、如何接吻、接吻的...

vwarship
2014/02/16
1K
4
BASIC-6 基础练习 杨辉三角形

杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。    它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。    下面给出了杨辉三角形的前4行:    1   ...

xnh_565175944
2018/05/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

nginx学习之模块

1、 stub_status模块: 用于展示nginx处理连接时的状态。 配置语法如下: Syntax:stub_status;Default:默认没有配置Context:server、location 可以编辑default.conf,加上如下配置: ...

码农实战
25分钟前
2
0
MySQL,必须掌握的6个知识点

目录 一、索引B+ Tree 原理 MySQL 索引 索引优化 索引的优点 索引的使用条件 二、查询性能优化使用 Explain 进行分析 优化数据访问 重构查询方式 三、存储引擎InnoDB MyISAM 比较 四、数据类...

李红欧巴
29分钟前
2
0
堆”和“栈

C++作为一款C语言的升级版本,具有非常强大的功能。它不但能够支持各种程序设计风格,而且还具有C语言的所有功能。我们在这里为大家介绍的是其中一个比较重要的内容,C++内存区域的基本介绍。...

SibylY
41分钟前
4
0
总结:Https

一、介绍 简单理解,https即在http协议的基础上,增加了SSL协议,保障数据传输的安全性。 它由以前的http—–>tcp,改为http——>SSL—–>tcp;https采用了共享密钥加密+公开密钥加密的方式 ...

浮躁的码农
43分钟前
6
0
数据库表与表之间的一对一、一对多、多对多关系

表1 foreign key 表2 多对一:表 1 的多条记录对应表 2 的一条记录 利用foreign key的原理我们可以制作两张表的多对多,一对一关系 多对多: 表1的多条记录可以对应表2的一条记录 表2的多条记...

Garphy
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部