PTA-2017实验2.4 函数

PTA-2017实验2.4 函数,第1张

6-1 简单实现x的n次方(10 分)

本题要求实现一个计算x n (n≥0)的函数

函数接口定义:

double mypow( double x, int n );

函数mypow应返回x的n次幂的值。题目保证结果在双精度范围内。

裁判测试程序样例:

输入样例:

输出样例:

程序源码

6-2 使用函数求1到10的阶乘和(10 分)

本题要求实现一个计算非负整数阶乘的简单函数,使得可以利用该函数,计算1!+2!+⋯+10!的值。

函数接口定义:

double fact( int n );

其中n是用户传入的参数,其值不超过10。如果n是非负整数,则该函数必须返回n的阶乘。

裁判测试程序样例:

输入样例:

输出样例:

程序源码

7-1 生成3的乘方表(15 分)

输入一个非负整数n,生成一张3的乘方表,输出3 ​0 ~3 ​n

​​ 的值。可调用幂函数计算3的乘方。

输入格式:

输入在一行中给出一个非负整数n。

输出格式:

按照幂的递增顺序输出n+1行,每行格式为“pow(3,i) = 3的i次幂的值”。题目保证输出数据不超过长整型整数的范围。

输入样例:

输出样例:

程序源码

7-2 求平方根序列前N项和(15 分)

本题要求编写程序,计算平方根序列√1 +√​2+√3+⋯的前N项之和。可包含头文件mathh,并调用sqrt函数求平方根。

输入格式:

输入在一行中给出一个正整数N。

输出格式:

在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后两位。题目保证计算结果不超过双精度范围。

输入样例:

输出样例:

程序源码

7-3 求阶乘序列前N项和(15 分)

本题要求编写程序,计算序列 1!+2!+3!+⋯ 的前N项之和。

输入格式:

输入在一行中给出一个不超过12的正整数N。

输出格式:

在一行中输出整数结果。

输入样例:

输出样例:

程序源码

import javaawtContainer;

import javaio;

import javanet;

import javaxswing;

import javaawtevent;

class S extends JFrame implements ActionListener {

int w = thisgetToolkit()getScreenSize()width;// 屏幕宽

int h = thisgetToolkit()getScreenSize()height;// 屏幕高

JButton send = new JButton("发送消息");// 发送消息按钮

JTextArea ta = new JTextArea();// 记录

JScrollPane content = new JScrollPane(ta);// 装记录的scroll

String ip = null;

int port = 10000;

String name = "6035";

S() {

thissetTitle("发送消息");

thissetSize(400, 400);

thissetVisible(true);

thissetLocation((w - 400) / 2, (h - 300) / 2);

thissetResizable(false);

thissetDefaultCloseOperation(JFrameEXIT_ON_CLOSE);

Container c = thisgetContentPane();

csetLayout(null);

thisadd(send);

sendaddActionListener(this);

sendsetActionCommand("send");// 添加监听命令

sendsetSize(120, 30);

sendsetLocation(0, 300);

thisadd(content);

contentsetSize(400, 300);// 大小

contentsetLocation(0, 0);// 位置

}

public void actionPerformed(ActionEvent a) {

String str = agetActionCommand();

Socket s;

PrintStream ps;

Systemoutprintln(str);

if (strequals("send")) {

String ss = thistagetText();

if (ss != null && !ssequals("")) {

try {

InetAddress addr = InetAddressgetLocalHost();

ip = addrgetHostAddress()toString();

String address = addrgetHostName()toString();

} catch (Exception e) {

Systemoutprintln(e);

}

try {

s = new Socket(ip, port);

ps = new PrintStream(sgetOutputStream(), true);

psprintln(name + "" + ss);

psclose();

sclose();

} catch (Exception e) {

} finally {

thistasetText("");

JOptionPaneshowMessageDialog(this, "发送成功");

Systemgc();

}

} else {

JOptionPaneshowMessageDialog(this, "你好像没有输入消息内容");

}

}

}

public static void main(String[] args) {

new S();

}

}

class Sa extends JFrame implements ActionListener {

int w = thisgetToolkit()getScreenSize()width;// 屏幕宽

int h = thisgetToolkit()getScreenSize()height;// 屏幕高

JButton send = new JButton("发送消息");// 发送消息按钮

JTextArea ta = new JTextArea();// 记录

JScrollPane content = new JScrollPane(ta);// 装记录的scroll

String ip = null;

int port = 10000;

String name = "5306";

Sa() {

thissetTitle("发送消息");

thissetSize(400, 400);

thissetVisible(true);

thissetLocation((w - 400) / 2, (h - 300) / 2);

thissetResizable(false);

thissetDefaultCloseOperation(JFrameEXIT_ON_CLOSE);

Container c = thisgetContentPane();

csetLayout(null);

thisadd(send);

sendaddActionListener(this);

sendsetActionCommand("send");// 添加监听命令

sendsetSize(120, 30);

sendsetLocation(0, 300);

thisadd(content);

contentsetSize(400, 300);// 大小

contentsetLocation(0, 0);// 位置

}

public void actionPerformed(ActionEvent a) {

String str = agetActionCommand();

Socket s;

PrintStream ps;

Systemoutprintln(str);

if (strequals("send")) {

String ss = thistagetText();

if (ss != null && !ssequals("")) {

try {

InetAddress addr = InetAddressgetLocalHost();

ip = addrgetHostAddress()toString();

String address = addrgetHostName()toString();

} catch (Exception e) {

Systemoutprintln(e);

}

try {

s = new Socket(ip, port);

ps = new PrintStream(sgetOutputStream(), true);

psprintln(name + "" + ss);

psclose();

sclose();

} catch (Exception e) {

} finally {

thistasetText("");

JOptionPaneshowMessageDialog(this, "发送成功");

Systemgc();

}

} else {

JOptionPaneshowMessageDialog(this, "你好像没有输入消息内容");

}

}

}

public static void main(String[] args) {

new Sa();

}

}

public class Meeting extends JFrame implements ActionListener, Runnable {

int w = thisgetToolkit()getScreenSize()width;// 屏幕宽

int h = thisgetToolkit()getScreenSize()height;// 屏幕高

ServerSocket ss = null;

int port = 10000;// 定义端口

String strlist[] = new String[5];// 装到list组件里

int strlists = 0;// 定义strlist的位置

String name = "这名真乖";// 用记名子,可以更改

JList list = new JList();// 定义下接菜单装IP用

JScrollPane jp = new JScrollPane(list);// 装下拉菜用

JButton b1 = new JButton("添加-ip");// 按钮添加IP用==ActionListener==ip

JButton ipm = new JButton("修改-ip");// 按钮添加IP用==ActionListener==ip

JButton b2 = new JButton("发送消息");// 按钮发送消息用==ActionListener==message

JButton b3 = new JButton("更改名子");// 按钮发送换名子用==ActionListener==name

JButton help = new JButton("使用帮助");

JButton broadcast = new JButton("群发消息");

JButton del = new JButton("删除-ip");// 删除IP

JLabel j = new JLabel("请大家正确使用,如果出现连接时间过长,有可能是IP错误,请大家等一会就好了");

JTextArea ta = new JTextArea();// 聊天记录

JScrollPane jpta = new JScrollPane(ta);// 装聊天记录的scroll

Socket socket = null;

String ip = null;

String ipaddres ;

Meeting() {

// jframe设计

thissetTitle("-->会话");

thissetSize(500, 600);

thissetVisible(true);

thissetLocation((w - 600) / 2, (h - 600) / 2);

thissetResizable(false);

thissetDefaultCloseOperation(JFrameEXIT_ON_CLOSE);

// 使用null布局

Container c = thisgetContentPane();

csetLayout(null);

fun();// 添加组件方法

try {

ss = new ServerSocket(10000);

Systemoutprintln("开始监听10000");

while (true) {

socket = ssaccept();

Systemoutprintln("有人连接10000");

new Thread(this)start();

Systemgc();

}

} catch (Exception e) {

}

}

public void fun() {

// 添加组件scroll--JList

try {

InetAddress addr = InetAddressgetLocalHost();

ip = addrgetHostAddress()toString();

} catch (Exception e) {

}

strlist[strlists++] = ip;

listsetListData(strlist);

thisadd(jp);

tasetEditable(false);

jpsetSize(150, 70);

jpsetLocation(340, 450);

// 添加组件b1添加IP==========添加IP 修改ip

thisadd(b1);

thisadd(ipm);

ipmsetSize(100, 20);

ipmsetLocation(340, 450 + 70 + 25);

ipmaddActionListener(this);

ipmsetActionCommand("ipm");

b1setSize(100, 20);

b1setLocation(340, 450 + 70);

b1addActionListener(this);// 添加监听

b1setActionCommand("ip");// 添加监听命令

// 添加组件b2======================发送消息

thisadd(b2);

b2setSize(100, 20);

b2setLocation(20, 450 + 10);

b2addActionListener(this);// 添加监听

b2setActionCommand("message");// 添加监听命令

// 添加组件b3=========================更改名子用

thisadd(b3);

b3setSize(100, 20);

b3setLocation(170, 450 + 10);

b3addActionListener(this);// 添加监听

b3setActionCommand("name");// 添加监听命令

// 添加组件del==========================删除IP

thisadd(del);

delsetSize(100, 20);

delsetLocation(230, 450 + 70 + 25);

deladdActionListener(this);// 添加监听

delsetActionCommand("del");// 添加监听命令

// 添加组件help==========================使用帮助

thisadd(help);

helpsetSize(100, 20);

helpsetLocation(20, 450 + 70 + 25);

helpaddActionListener(this);// 添加监听

helpsetActionCommand("help");// 添加监听命令

// 添加组件broadcast==========================小区广播

thisadd(broadcast);

broadcastsetSize(100, 20);

broadcastsetLocation(20, 450 + 53);

broadcastaddActionListener(this);// 添加监听

broadcastsetActionCommand("broadcast");// 添加监听命令

// 添加组件文本区域========================聊天记录

thisadd(jpta);

jptasetSize(450, 400);

jptasetLocation(20, 50);

tasetEditable(false);// 不可编辑

fun1();

// 添加JLabel

thisadd(j);

jsetSize(500, 20);

jsetLocation(10, 15);

}

public void fun1() {

String strname = JOptionPaneshowInputDialog("请输入一个昵称吧");

if (strname != null) {

thisname = strname;

} else {

JOptionPaneshowMessageDialog(this,

"你怎么不写名子啊???\n还好系统为你创建了名子\n名子为:\n这名真乖");

}

String strip = JOptionPaneshowInputDialog("请输入一个IP吧");

if (strip != null) {

if (istrue(strip)) {

strlist[strlists++] = strip;

Systemoutprintln(strlists);

listsetListData(strlist);

} else {

JOptionPaneshowMessageDialog(this, "请输入正确的IP");

}

} else {

JOptionPaneshowMessageDialog(this,

"你怎么不写好友IP啊???\n你不要好友的IP!你跟谁聊天啊\n"

+ "还好系统可以添加IP和修改IP\n学乖一点哦");

}

JOptionPaneshowMessageDialog(this, "你也可以把自己本机的IP添加到上面\n自己跟自己聊天--哈哈");

}

public void actionPerformed(ActionEvent e) {

String str = egetActionCommand();

if (strequals("ip")) {

Systemoutprintln("添加IP啦");

String ip = JOptionPaneshowInputDialog("请输入好友IP");

if (ip != null) {

if (istrue(ip)) {

strlist[strlists++] = ip;

listsetListData(strlist);

Systemoutprintln(strlists);

} else {

JOptionPaneshowMessageDialog(this, "请输入正确的IP");

}

}

}

if (strequals("ipm")) {

Systemoutprintln("修改IP啦");

if (listgetSelectedValue() != null) {

String ss = listgetSelectedValue()toString();

int i = listgetSelectedIndex();

Systemoutprintln("ip为" + ss + " 第 " + i + "数组");

String newip = JOptionPaneshowInputDialog("原IP为" + ss

+ "请输入新ip");

if (newip != null) {

if (istrue(newip)) {

strlist[i] = newip;

listsetListData(strlist);

} else {

JOptionPaneshowMessageDialog(this, "请输入正确的IP");

}

}

} else {

JOptionPaneshowMessageDialog(this, "请选一个IP,好不好");

}

}

if (strequals("message")) {

Systemoutprintln("发送消息");

if (listgetSelectedValue() != null) {

ipaddres = listgetSelectedValue()toString();

Sa sa = new Sa();

sasetDefaultCloseOperation(JFrameDISPOSE_ON_CLOSE);

} else {

JOptionPaneshowMessageDialog(this, "从右下边的IP库\n选一个IP");

}

}

if (strequals("name")) {

Systemoutprintln("改名子啦");

String strname = JOptionPaneshowInputDialog("原名为" + name

+ "\n请输入新名子");

if (strname != null) {

thisname = strname;

} else {

Systemoutprintln("你输入了null,可能是点取消了");

}

}

if (strequals("help")) {

JOptionPaneshowMessageDialog(this,

"添加好友的IP-->添加IP\n可以是内网也可以是外网\n确定好友上面也有本程序\n"

+ "然后选择好友的IP就可以发送消息了");

}

if (strequals("broadcast")) {

JOptionPaneshowMessageDialog(this,

"\n你所有的好友(ip)都可以接受到消息\n\n类似群发消息");

S s = new S();

ssetDefaultCloseOperation(JFrameDISPOSE_ON_CLOSE);

// broadcast();

}

if (strequals("del")) {

Systemoutprintln("删除IP啦");

if (listgetSelectedValue() != null) {

int i = listgetSelectedIndex();

strlist[i] = null;

listsetListData(strlist);

}

}

}

public void run() {

BufferedReader br = null;

try {

br = new BufferedReader(new InputStreamReader(socket

getInputStream(), "GB2312"));

String line = brreadLine();

Systemoutprintln(line);

if (lineindexOf("6035") != -1) {

StringBuffer b = new StringBuffer(line);

bdelete(0, 4);

int x = 30;

int i = blength();

for(int j=0;j<=i/x;j++){

binsert(jx,"\n");

}

line = btoString();

thisbroadcast(line);

JOptionPaneshowMessageDialog(this, "通知\n" +name +"说:" + "\t"+line);

}

if (lineindexOf("5306") != -1) {

StringBuffer b = new StringBuffer(line);

bdelete(0, 4);

int x = 30;

int i = blength();

for(int j=0;j<=i/x;j++){

binsert(jx,"\n");

}

line = btoString();

thiss(line);

JOptionPaneshowMessageDialog(this, "通知\n" +name +"说:" + line);

}

} catch (Exception e) {

}

}

public void save(String str, int i) {

if (i == 1) {

// 接受的消息

thistasetText(tagetText() + str + "\n");

}

if (i == 2) {// 本地的消息

thistasetText(tagetText() + name + "说:" + str + "\n");

}

}

public void s(String str){

String mess = str ;

try {

Socket ss = new Socket(ipaddres, port);

PrintStream ps = new PrintStream(ssgetOutputStream(), true);

if (mess != null) {

save(mess, 2);

psprintln(name + "说:" + mess);

}

} catch (Exception e) {

JOptionPaneshowMessageDialog(this, "实例化失败\n"

+ listgetSelectedValue()toString()

+ "这个IP有问题\n请不要再点了\n确认清楚-->\n点修改IP或者删掉");

}

}

public void broadcast(String str) {

String mess = str;

int x = 1;

if (mess != null) {

for (int i = 1; i < strlists; i++) {

Systemoutprintln(strlist[i]);

if (strlist[i] != null) {

Socket ss;

try {

ss = new Socket(strlist[i], port);

PrintStream ps = new PrintStream(ssgetOutputStream(),

true);

if (x == 1) {

save(mess, 2);

x++;

}

psprintln(name + "说:" + mess);

psclose();

ssclose();

} catch (Exception e) {

JOptionPaneshowMessageDialog(this, strlist[i]

+ "连接不上\n ip不对或者对方是内网\n请删除或者修改\n以免影响使用");

}

}

}

x = 1;

}

}

public boolean istrue(String str) {

boolean flag = false;

flag = strmatches("(\\d{1,3})(\\d{1,3})(\\d{1,3})(\\d{1,3})");

return flag;

}

public static void main(String[] args) {

new Meeting();

}

}

int []arr = new int[n];//n为你要定义的数组长度

int []arr_ = new int[n];

static int j=0;

for(int i=0;i<arrlengh;i++)

{

if(arr[i]%2==0)

arr_[j++]=arr[i];

}

你的程序有一个大BUG,能正常运行只是你的运气问题(与环境/编译器有关的,所以clang++可以有正确结果)

问题主要在

str2[k]=str1[i];

你的str2没有申请内存(它缺少会有一定空间的,所以程序能运行)

你改为

str2+=str1[i];

就可以了

以上就是关于PTA-2017实验2.4 函数全部的内容,包括:PTA-2017实验2.4 函数、大一java课题代码,要求:复制粘贴后就能用的,1000行以上,可追加分数,看你的是不是没重复的,下载的不、写一个方法,将一个整形数组中的偶数复制到另一个数组中,用java写。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9698269.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存