2023/6/14总结

news2024/11/25 17:30:58

JS的学习:

JavaScript是一种运行在客户端(浏览器)的编程语言,实现人机交互的效果

主要作用:

  • 网页特效
  • 表单验证
  • 数据交互

JS的组成

ECMAScript

规定了js基础的语法核心知识

Web APIs

DOM:操作文档,对页面元素进行移动、大小、添加删除操作。

BOM:操作浏览器,比如页面弹窗、检测窗口宽度、存储数据到浏览器。

JS引用方式:(在body标签里面)

JS输出语句:

输入语句:

 

console.log 控制台输出 

需要注意的是:alert()和prompt()会跳过页面渲染先被执行。

 JS声明变量

let 变量名称

声明数组:

let 数组名=[数据1,数据2……数据n]

拼接字符串和变量

JS类型转换:

  • 隐式转换

+号俩边只要有一个是字符串,都会变成字符串   +号作为正号解析可以转换成数字类型

- * /都会把数据变成数字类型

  • 显示转换:

Number(数据)

转换成数字类型

如果字符串里面有非数字,则结果为NaN

NaN是number的一种,代表非数字

parseInt(数据)转换为整型

parseFloat(数据)转换为浮点型

==只要值相等,就会返回true

而===需要数据类型和值一样的都相等才能返回true

开发中,判断是否相等,用的是===

关于JavaScript的一个案例:

2023-06-14 01-13-33-214

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="CSS/demo0612.css">
    <title>demo0612</title>
</head>
<body>

    <script>
        let num=[];
        for(let i=1; i <= 4;i ++)
        {
            num[i]=+prompt(`请输入第${i}季度的数据:`);
        }
        document.write(`<div class="xy">`)
        for(let i = 1;i <= 4; i ++)
        {
            document.write(
            `<div class="y" style="height:${num[i]}px">
            <span>${num[i]}</span>
            <h4>第${i}季度</h4>
            </div>`
            )
        }
        document.writer(`</div>`)
    </script>
</body>
</html>
.xy
{

    display:flex;
    align-items:flex-end;
    text-align:center;
    width:500px;
    height:500px;
    margin:10px auto;
    border-left:2px solid #ccc;
    border-bottom:2px solid #ccc;
}
.y
{
    margin:0px 20px 0 20px;
    display:flex;
    width:80px;
    background-color:pink;
    flex-direction:column;
    justify-content:space-between;
}
.y h4
{
    margin-bottom:-35px;
}
.y span
{
    margin-top:-20px;
}

函数:

function 函数名称()

{

        语句

}

调用和c语言一模一样——函数名称()

匿名函数

  • 函数表达式:

fn=function();   这个里面没有函数名称,调用的时候是fn()  

  • 立即执行函数

(function(){})()

(funtion(){}())

对象:

 增加对象属性:

删除对象属性 

 查找:

定义方法:

 遍历对象的属性:

遍历对象数组:

 JavaScript内置对象-Math

大部分和c的差不多,需要注意下面这俩个不一样的

  • cell  向上取整
  • floor  向下取整

在JavaScript中,const修饰的基本数据类型是不可以改变的,修饰的对象数据类型地址不变,就可以改变。

 DOM

DOM是文档对象类型,是用来呈现以及与任意HTML或者XML文档交互的API(就是浏览器提供的一套专么用来操作网页内容的功能

DOM作用:开发网站内容特效和实现用户交互。

DOM树

  • 将HTML文档以树状结构直观的表现出来,我们称之为文档或者DOM树
  • 描述网页内容关系的名词

作用:直观的体现了标签与标签之间的关系

DOM对象

  • 浏览器根据html标签生成的js对象
  • 所有的标签属性都可以在这个对象上面找到,修改这个对象的属性会自动映射到标签身上

DOM的核心思想:把网页内容当作对象来处理

DOM里面最大的对象是document,所有document提供的属性和方法是用来访问和操作网页内容的

网页所有的内容都在document里面。

获取DOM元素

  • 借助css选择器:

document.querySelector('CSS选择器')   必须要加引号,否则会当成变量

每次选择的都是第一个,没有就是null

document.querySelectorAll('CSS选择器')  返回的是一个集合

 题解:

第二周任务 [Cloned] - Virtual Judge (vjudge.net)

这道题 其实可以把这个看成一个循环的数组

每次都执行一种操作:

把第一行放到最后一行,其他的往上移动

把第一列放到最后一列,其他的往就移动

 然后就能通过求余就能对应上对应的列

#include<stdio.h>
#define Maxsize 35
char a[Maxsize][Maxsize],b[Maxsize][Maxsize];
int main()
{
	int n,m,i,j,tx,ty,x,y,flag=0;
	scanf("%d%d",&n,&m);
	for(i=0;i<n;i++)
	{
		scanf("%s",a[i]);
	}
	for(i=0;i<n;i++)
	{
		scanf("%s",b[i]);
	}
	flag=0;
	for(i=0;i<n;i++)
	{
		for(j=0;j<m;j++)
		{
			flag=1;
			for(x=0;x<n;x++)
			{
				for(y=0;y<m;y++)
				{
					tx=(x+i)%n;
					ty=(y+j)%m;
					if(a[tx][ty]!=b[x][y])
					{
						flag=0;
					}
				}
			}
			if(flag) break;
		}
		if(flag) break;
	}
	if(flag) puts("Yes");
	else puts("No");
	return 0;
}

第二周任务 [Cloned] - Virtual Judge (vjudge.net)

这是一题dfs题目,就判断四个方向的是否都是#就可以了。

#include<stdio.h>
#define Maxsize 110
char a[Maxsize][Maxsize];
int next[4][2]={-1,-1,1,-1,-1,1,1,1},n,m;
int is(int x,int y)
{
	int i,j,k,tx,ty;
	if(a[x][y]!='#') return 0;
	for(k=1;;k++)
	{
		for(i=0;i<4;i++)
		{
			tx=x+k*next[i][0];
			ty=y+k*next[i][1];
			if(tx<0||ty<0||tx>=n||ty>=m) return k-1;
			if(a[tx][ty]!='#') return k-1;
		}
	}
	return n>m?m:n;
}
int main()
{
	int i,j,b[Maxsize]={0},k,r;
	int tx,ty;
	scanf("%d%d",&n,&m);
	for(i=0;i<n;i++)
	{
		scanf("%s",a[i]);
	
	}
	r=n>m?m:n;
	//第一个数字是min(n,m)
	//后面的数字代表0-n的×个数
	for(i=0;i<n;i++)
	{
		for(j=0;j<m;j++)
		{
			b[is(i,j)]++;
		}
	}
	for(i=1;i<=r;i++)
	{
		printf("%d ",b[i]);
	}
	return 0;
}

第二周任务 [Cloned] - Virtual Judge (vjudge.net)

这个题目是一个简单的二分的题目

题目大意是一个字符串都是由01组成,前面全部都是0 ,后面全部都是1,找到0 变成1的那个中介点。

#include<stdio.h>
#define Maxsize 200010
int a[Maxsize];
int main()
{
	int n,i,l,r,m,x;
	scanf("%d",&n);
	l=1,r=n;
	for(i=2;i<n;i++)
	{
		a[i]=-1;
	}
	a[1]=0;
	a[n]=1;
	//第1位是0  最后一位是1
	//二分查找
	while(l<=r)
	{
		m=(l+r)/2;
		printf("? %d\n",m);
		fflush(stdout);
		scanf("%d",&x);
		a[m]=x;
		if(a[m]==0)
		{
			//
			if(a[m+1]==1)
			{
				printf("! %d\n",m);
				return 0;
			}
			else 
			{
				l=m+1;
			}
		}
		else if(a[m]==1)
		{
			if(a[m-1]==0)
			{
				printf("! %d\n",m-1);
				return 0;
			}
			else 
			{
				r=m-1;
			}
		}
	}
	return 0;
}

 第二周任务 [Cloned] - Virtual Judge (vjudge.net)

这个题目的大致意思是 找到最长的连续是o的字串,-ooooo算,ooooo-也算

#include<stdio.h>
#define Maxsize 200100
int MAX(int a,int b)
{
	if(a>b) return a;
	return b;
}
int main()
{
	int n,i,j=0,res=-1;
	char str[Maxsize]={0};
	scanf("%d",&n);
	scanf("%s",str);
	
	for(i=0;i<n;)
	{
		while(i<n&&str[i]=='o') i++;
		if(str[j]=='-') 
		{
			if(j!=i) res=MAX(res,i-j-1);
		}
		else if(i<n&&str[i]=='-')
		{
			if(j!=i) res=MAX(res,i-j);
		}
		while(i<n&&str[i]=='-') i++;
		j=i-1;
	}
	
	printf("%d\n",res);
	return 0;
}

第二周任务 [Cloned] - Virtual Judge (vjudge.net)

这个题目是根据所给的信息构成一个数字,删掉第一个开头的数字,或者添加一位数字在后面,或者查看这个数字。

我们可以用数组去构造一个队列去存储各位数字。另外一个数字存储10、100、100这样的数字,但是需要先求余,不然最后数字会很大,记录这些数字只是为了好操作对于删除第一位数字,到时候只需要用res-对应的位数所指向的10的n次幂就可以了,需要注意的是  十年OI一场空,不开long long见祖宗。

#include<stdio.h>
#include<math.h>
#define Maxsize 600010
#define MOD 998244353
long long a[Maxsize]={0},b[Maxsize]={0};
int main()
{
	long long t,i,choose;
	long long res=1,l=0,r=1;
	a[0]=1;b[0]=1;
	for(i=1;i<Maxsize;i++)
	{
		a[i]=a[i-1]*10%MOD;
	}
	scanf("%lld",&t);
	while(t--)
	{
		scanf("%lld",&choose);
		if(choose==1)
		{
			scanf("%lld",&i);
			res=(res*10+i)%MOD;
			b[r++]=i;
		//	printf("1--%lld\n",res);
		}
		else if(choose==2)
		{
			res=((res-a[r-l-1]*b[l])%MOD+MOD)%MOD;
		//	printf("2--%lld\n",res);
			l++;
		}
		else if(choose==3)
		{
			printf("%lld\n",res);
		}
	}
	return 0;
}

第二周任务 [Cloned] - Virtual Judge (vjudge.net)

这道题我刚开始想的是直接输出n*n(如果满足的话)

但是最后一个案例过不了,估计是被卡了。

这道题必须要求对应的最小的大于等于M的一个合数,因此就转化成需要找到俩个数字

需要满足俩个条件:a<=b,a*b>=m 

那么就可以直接穷举,我们从1-n/2,去穷举a的值,就能推出b的值,那m去除以a,如果有余数就b=m/a+1,然后用res比较得出最小值即可。

#include<stdio.h>
#include<math.h>
#define INF 2e18
unsigned long long MIN(unsigned long long a,unsigned long long b)
{
	if(a<b) return a;
	return b;
}
int main()
{
	unsigned long long n,m,i,j,res=INF;
	scanf("%llu%llu",&n,&m);
	//1-n的数字要表示至少m
	if(n*n<m)
	{
		puts("-1");
	}
	else 
	{
		//
		for(i=1;i<=n;i++)
		{
			//直接暴力枚举,算出j的取值
			//j=(m+i-1)/i,是为了刚好取到最小值
			j=(m+i-1)/i;
			if(j<=n) res=MIN(res,i*j);
			if(i>j) break;
		}
		if(res==INF) puts("-1");
		else printf("%llu\n",res);
	}
	return 0;
}

第二周任务 [Cloned] - Virtual Judge (vjudge.net)

 这道题用set很容易就做出来了

#include<stdio.h>
#include<set>
#define Maxsize 200010

using namespace std;

set<int> myset;

int a[Maxsize];
int main()
{
	int n,m;
	int i;
	scanf("%d%d",&n,&m);
	for(i=0;i<n;i++)
	{
		scanf("%d",&a[i]);
		myset.insert(a[i]);
	}
	for(i=0;i<n;i++)
	{
		if(myset.count(a[i]+m))
		{
			puts("Yes");
			return 0;
		}
	}
	puts("No");
	return 0;
}

第二周任务 [Cloned] - Virtual Judge (vjudge.net)

 这道题其实是一个计算

计算所有的区间和x值,然后看区间是否对的上,根据区间去计算即可

#include<stdio.h>
#define N 100010
struct node
{
	long long x;
	long long count;
}a[N][2];
int main()
{
	long long l,n1,n2,i,x,y,j,sum,max;
	scanf("%lld%lld%lld",&l,&n1,&n2);
	for(i=1;i<=n1;i++)
	{
		scanf("%lld %lld",&a[i][0].x,&a[i][0].count);
		a[i][0].count+=a[i-1][0].count;
	}
	for(i=1;i<=n2;i++)
	{
		scanf("%lld %lld",&a[i][1].x,&a[i][1].count);
		a[i][1].count+=a[i-1][1].count;
	}
	sum=0;
	for(i=1,j=1;i<=n1&&j<=n2;)
	{
		if(a[i][0].x==a[j][1].x)
		{
			if(a[i][0].count<a[j][1].count&&a[j-1][1].count<a[i][0].count)
			{
				if(a[j-1][1].count>a[i-1][0].count)
				{
					max=a[j-1][1].count;
				}
				else max=a[i-1][0].count;
				
				sum+=a[i][0].count-max;
				i++;
			}
			else if(a[i][0].count>=a[j][1].count&&a[j][1].count>a[i-1][0].count)
			{
				if(a[j-1][1].count>a[i-1][0].count)
				{
					max=a[j-1][1].count;
				}
				else max=a[i-1][0].count;
				
				sum+=a[j][1].count-max;
				j++;
			}
			else if(a[i][0].count<a[j][1].count)
			{
				i++;
			}
			else if(a[i][0].count>=a[j][1].count)
			{
				j++;
			}
		}
		else if(a[i][0].count<a[j][1].count)
		{
			i++;
		}
		else if(a[i][0].count>a[j][1].count) j++;
		else 
		{
			i++,j++;
		}
	}
	printf("%lld\n",sum);
}

第二周任务 [Cloned] - Virtual Judge (vjudge.net)

这是一个遍历的题目,直接遍历即可

#include<stdio.h>
#define N 500010
int a[N]={0};
int main()
{
	int n,t,i,x,y,j;
	int p,q;
	p=q=1;
	scanf("%d%d",&n,&t);
	for(i=1;i<=t;i++)
	{
		scanf("%d",&x);
		if(x==2)
		{
			scanf("%d",&y);
			a[y]=-1;
		}
		else 
		{
			if(x==1)
			{
				a[p]=1;
				p++;
			}
			else if(x==3)
			{
				while(a[q]==-1)
				{
					q++;
				}
				printf("%d\n",q);
			}
		}
	}
	return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

简单的TCP网络程序·线程池(后端服务器)

目录 版本四&#xff1a;线程池 注意事项 文件&#xff1a;Task.hpp -- 任务单独为一个文件 组件&#xff1a;日志修改 新函数&#xff1a;vprintf() 可变参数的提取逻辑 vfprintf()的工作原理 初始化一个va_list 日志准备 获取时间小知识 日志初版 日志启动测试 …

DAY23:二叉树(十三)二叉树的最近公共祖先+二叉搜索树的最近公共祖先

文章目录 236.二叉树的最近公共祖先思路完整版后序遍历的进一步理解为什么左为空右不为空的时候return right这个逻辑是否包含p/q本身就是公共祖先的情况 235.二叉搜索树的最近公共祖先思路关于遍历顺序 递归法最开始的写法debug测试修改版 迭代法最开始的写法为什么最开始这种…

chatgpt赋能python:Python收费介绍

Python收费介绍 什么是Python? Python是一种高级的、解释性、面向对象、纯粹的动态语言&#xff0c;多用于快速应用程序开发、脚本编写、系统管理任务等。它有一个简单直观优美的语法&#xff0c;非常容易学习。 Python的收费形式 Python语言本身是免费的&#xff0c;任何…

chatgpt赋能python:Python如何操作Word文档

Python如何操作Word文档 简介 Python是一种高级编程语言&#xff0c;具有易于学习和使用、高效、可移植性强等优点。相信许多Python开发者都遇到过需要使用Python操作Word文档的情况。本文旨在介绍如何使用Python操作Word文档&#xff0c;使开发者能够方便地实现自己的需求。…

chatgpt赋能python:Python怎么改为中文?

Python怎么改为中文&#xff1f; Python是一种高级编程语言&#xff0c;具有易读性、简单性和可扩展性的特点。它广泛应用于Web开发、数据分析、人工智能等领域。如何将Python改为中文&#xff1f;下面将为您详细介绍。 为什么要将Python改为中文&#xff1f; Python的英文是由…

[读论文][谷歌-12s生成] Speed is all your need

论文简要总结 刚读了下speed is all you need这个论文, https://arxiv.org/pdf/2304.11267.pdf 只是用的SD1.4没有对网络进行改造。 只做了4个改动 1 是对norm采用了groupnorm (GPU shader加速) 2 采用了GELU (GPU shader加速) 3 采用了两种attention优化&#xff0c;是partiti…

C语言之指针详解(2)

目录 本章重点 1. 字符指针 2. 数组指针 3. 指针数组 4. 数组传参和指针传参 5. 函数指针 6. 函数指针数组 7. 指向函数指针数组的指针 8. 回调函数 9. 指针和数组面试题的解析 数组指针 数组指针的定义 数组指针是指针&#xff1f;还是数组&#xff1f; 答案是&…

数据结构-队列

数据结构之队列 队列的概念顺序队列循环队列 顺序循环队列的ADT定义1、简单结构体定义2、初始化3、队列的清空4、计算队列的长度5、判断队列是否为空6、插入新的元素7、元素的删除8、遍历输出队列内的所有元素 链队列的ADT定义1、链队列简单结构体定义2、初始化链队列3、判断链…

chatgpt赋能python:Python怎么断行-让代码更易读

Python怎么断行 - 让代码更易读 大多数Python程序员都知道&#xff0c;代码可读性非常重要。好的代码应该易于阅读和理解&#xff0c;而不是让人困惑和痛苦。 然而&#xff0c;我们经常会发现一些Python代码在一行中拥挤着多个表达式、长变量名混杂其中&#xff0c;让人感到相…

数组:为什么数组都从0开始编号?

提到数组&#xff0c;我想你肯定不陌生&#xff0c;甚至还会自信地说&#xff0c;它很简单啊。 是的&#xff0c;在每一种编程语言中&#xff0c;基本都会有数组这种数据类型。不过&#xff0c;它不仅仅是一种编程语言中的数据类型&#xff0c;还是一种最基础的数据结构。尽管…

word中使用通配符批量将参考文献设置为上角标

目录 一、word中的通配符匹配规则 二、匹配单个参考文献 三、匹配多个参考文献 四、操作方式 &#xff08;1&#xff09;打开word中的替换功能 &#xff08;2&#xff09;输入要查找的内容 &#xff08;3&#xff09;选择替换格式 &#xff08;4&#xff09;点击替换 一…

Linux调试工具GDB(1)

文章目录 前言一、GDB概念二、GDB具体使用方法三、GDB断点类型总结 前言 本篇文章我们来介绍一下Linux中的调试利器GDB工具&#xff0c;在Linux的调试中GDB可以帮助我们来解决非常多的问题。 一、GDB概念 GDB是一个功能强大的调试工具&#xff0c;可以用于分析程序崩溃&…

temporal简介

文章目录 前言一、temporal是什么&#xff1f;二、使用步骤1.执行以下命令以启动预构建映像以及所有依赖项。2.运行示例 总结 前言 这两天在国外的网站发现了一个新的golang的微服务框架&#xff0c;感觉挺不错&#xff0c;分亨出来&#xff0c;大家一起看看。 一、temporal是…

python:并发编程(四)

前言 本文将和大家一起探讨python的多进程并发编程&#xff0c;使用内置基本库multiprocessing来实现并发&#xff0c;先通过官方来简单使用这个模块。先打好基础&#xff0c;能够有个基本的用法与认知&#xff0c;后续文章&#xff0c;我们再进行详细使用。 本文为python并发…

【数据库原理与应用 - 第四章】关系数据库规范化理论

目录 一、关系模式规范化理论 1、关系模式规范化概念 2、关系模式应满足的基本要求 3、关系规范化的意义 &#xff08;1&#xff09;一个好的数据库应遵循的标准 &#xff08;2&#xff09;规范化的意义 二、函数依赖 1、函数依赖的概念 &#xff08;1&#xff09;平凡…

Vue--》Vue3打造可扩展的项目管理系统后台的完整指南(五)

今天开始使用 vue3 ts 搭建一个项目管理的后台&#xff0c;因为文章会将项目的每一个地方代码的书写都会讲解到&#xff0c;所以本项目会分成好几篇文章进行讲解&#xff0c;我会在最后一篇文章中会将项目代码开源到我的GithHub上&#xff0c;大家可以自行去进行下载运行&…

学生成绩管理系统(逻辑清楚-简单实用)

1、需求分析 1.1、需求分析概述 需求分析是我们在软件开发中的重要环节&#xff0c;是软件开发的第一步也是最基础的环节&#xff0c;这将决定我们所实现的目标以及系统的各个组成部分、各部分的任务职能、以及使用到的数据结构、各个部门之间的组成关系和数据流程&#xff0…

chatgpt赋能python:Python列表操作:如何使用Python将数据放入列表中

Python列表操作&#xff1a;如何使用Python将数据放入列表中 在Python中&#xff0c;列表是一种重要的数据结构&#xff0c;允许我们将多个项目存储在单个变量中。在本文中&#xff0c;我们将介绍如何将数据放入Python列表中。我们将讨论Python中的列表数据类型以及如何向列表…

chatgpt赋能python:Python中如何放大图片

Python中如何放大图片 简介 图片是网站优化中不可或缺的一部分&#xff0c;然而&#xff0c;当图片在网站中被缩小或拉伸时&#xff0c;会导致其模糊或失真。在这种情况下&#xff0c;可以使用Python中的一些库来放大图片&#xff0c;同时保持图像的清晰度和质量。在本篇文章…

JavaScript 进阶 - 第3天

文章目录 JavaScript 进阶 - 第3天1 编程思想1.1 面向过程1.2 面向对象&#xff08;oop&#xff09; 2 构造函数3 原型对象3.1 原型3.2 constructor 属性3.3 对象原型3.4 原型继承3.5 原型链&#xff08;面试高频&#xff09; JavaScript 进阶 - 第3天 了解构造函数原型对象的语…