Snippets Collections
{
	"blocks": [
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":star: Happy Boost Day! :star:"
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "Hey Toronto!\n\nCheck out today's fantastic lineup: "
			}
		},
		{
			"type": "divider"
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":calendar-date-5: Thursday, 12th December",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "\n:coffee: *Café Partnership*: Enjoy coffee and café-style beverages from our partner, *HotBlack Coffee*, located at 245 Queen St W, by showing your *Xero ID*. \n:lunch: *Lunch*: Provided by *Mandy's Salads* at *12 PM* in the Kitchen.\n:canada::us:*North America All Hands* @ 12:30 PM\n:learning-result: *Machine Learning Talk Series* hosted by *Khantil Desai*, Dec. 12th @ 2:00 pm\n:happy-hour:*Social Happy Hour* this afternoon @ *4:30*! Come enjoy some drinks, sushi and sweet treats!"
			}
		},
		{
			"type": "divider"
		},
		{
			"type": "section",
			"text": {
				"type": "plain_text",
				"text": "Have an amazing Boost Day, Toronto!\n\nLove,\n\nWX  :party-wx:  ",
				"emoji": true
			}
		}
	]
}
$dataProvider = new ActiveDataProvider([
            'query' => $query,
            'sort'=> ['defaultOrder' => ['id_tipo_cambio' => SORT_DESC]] // Agregar esta linea para agregar el orden por 
        ]);
class employe{
    private String nom;
    private String pre;
    private int age;
    private float salaire;
    employe(){
        this.nom="sis";
        this.pre="kakak";
        this.age=58;
        this.salaire=7892;
    }
    employe(String nom,String pre,int age,float salaire){
        this.nom=nom;
        this.pre=pre;
        this.age=age;
        this.salaire=salaire;
    }
    employe (employe e){
        this.nom=e.nom;
        this.pre=e.pre;
        this.age=e.age;
        this.salaire=e.salaire;
    }
    String getNom(){
        return this.nom;
    }
    String getPre(){
        return this.pre;
    }
    int getAge(){
        return this.age;
    }
    float getSalaire(){
        return this.salaire;
    }
    void setNom(String nom){
        this.nom=nom;
    }
    void setPre(String pre){
        this.pre=pre;
    }
    void setAge(int age){
        this.age=age;
    }void setSalaire(float salaire){
        this.salaire=salaire;
    }
    void aug(float sa){
        this.salaire+=sa;
    }
    public String toString(){
        String ch;
        ch="Employe[Nom:"+this.nom+"| Prenom:"+this.pre+"| Age:"+this.age+"| Salaire:"+this.salaire;
        return ch;
    }
    void affiche(){
        System.out.println(this.toString());
    }}
    class tech extends employe{
        private int grade;
        public tech() {
        super(); // Appelle le constructeur par défaut de employe
        this.grade = 1; // Valeur par défaut pour grade
    }
        tech(String nom,String pre,int age,float salaire,int grade){
            super(nom,pre,age,salaire);
            setGrade(grade);
        }
        int getGrade(){
            return this.grade;
    }
    void setGrade(int grade){
        if(grade>=1 && grade<=3){
            this.grade=grade;
        }else{
            System.out.println("grade invalid");
        }}
    int prime(){
    switch(grade){
             case 1:return 100;
             case 2:return 200;
             case 3:return 300;
             default:return 0;
         }
}
    public String toString(){
        String ch;
        ch=super.toString()+"| le grade :"+this.grade+"|le prime :"+this.prime();
        return ch;
    }
    void augg(){
        this.aug(this.prime());
    }
    
    }
   class equipe extends tech{
       private tech [] tab;
       equipe(tech[] tab){
           this.tab=tab;
       }
    public tech hisa(){
        tech higs=tab[0];
        for(int i=0;i<tab.length;i++){
            if(tab[i].getSalaire()>higs.getSalaire()){
                higs=tab[i];
            }
        }
        return higs;
    }   
    public tech higa(){
        tech hig=tab[0];
        for(int i=0;i<tab.length;i++){
            if(tab[i].getGrade()>hig.getGrade()){
                hig=tab[i];
            }
        }
        return hig;
    }   
       
   } 
    
    
    
    
    public class Main{
        public static void main(String [] args){
            employe e1=new employe("sahar","mess",20,9000);
            tech t1=new tech("ahmed","ben",25,10000,1);
            e1.affiche();
            t1.affiche();
            e1.aug(500);
            e1.affiche();
            t1.setGrade(2);
            t1.augg();
            t1.affiche();
            tech t2=new tech("amir","jerbi",30,1852,2);
            tech t3=new tech("sara","ouraj",21,47859,1);
            tech t4=new tech("farah","chao",29,47899,3);
            tech t5=new tech("alona","zyan",45,8000,2);
            tech[] tab={t2,t3,t4,t5};
            equipe eq=new equipe(tab);
            System.out.println("Highest Salary Technician: " + eq.hisa());
        System.out.println("Highest Grade Technician: " + eq.higa());
            
        }
    }
    
    
    
    
    
    
    
    
Consumer demand and market trends have changed periodically. So if you're considering building your competitive food delivery app like Ubereats, then here we clearly list out the market-shifting things

1. Stay updated with Market Trends
Every time keep tracking your consumer preference in all aspects, like contactless delivery, food options, and sustainable practices. Analyze the study of the strategies of competitors and find out where you can outperform in the field. Utilize data analytics to grab insightful data and user preferences to identify trends and make data-driven decisions.

2. Enhance User Experience
Insist your platform UI is more convenient for your audience in all aspects, like navigating, and visually more appealing. Leverage the power of AI to recommend restaurants and dishes based on the customer's past preferences. Avail real-time food tracking for your platform users that is more convenient for your users in providing exact information and doing more engagement. As well as avail multiple variety of payment options to cater your food delivery business. Insist loyalty programs and encourage your audience to repeat the process of your business.

3. Expand Your Service Offerings
Enlarge your business in more ways, like grocery delivery, quick commerce businesses, etc. Avail discounts and offers based on services and exclusive benefits. Make partnerships with local businesses to provide additional localized services like flower delivery and dry cleaning.

4. Indulge in the latest technologies
Leverage the latest technologies like AI and matching learning to optimize your platform for personalization and predict future demand. Implement blockchain technology to provide tamper-proof security for your audience in making purchases. Integrate IOT device support to optimize your delivery operations and efficiency.

5. Continuous Improvement
Gather your platform user feedback to incorporate the latest things into your future updates. Although it periodically pushes the regular updates, fixes bugs, improves performance, and adds new features. Experiment with different features and designs to optimize the user experience.

Be adaptive and change market trends to uplift your food delivery business by leveraging Ubereats clone script in all potential ways and utilizing the market demand shifts.
SELECT 
    source.employee AS `Employee`,
    source.employee_name AS `Employee Name`,
    TabEmployee.department AS `Department`,
    TabEmployee.designation AS `Designation`,
    TabEmployee.branch AS `Branch`,
    source.From_Date AS `From Date`,
    source.To_Date AS `To Date`,
    source.Day_1_IN AS `Day 1 IN`,
    source.Day_1_OUT AS `Day 1 OUT`,
    source.Day_2_IN AS `Day 2 IN`,
    source.Day_2_OUT AS `Day 2 OUT`,
    source.Day_3_IN AS `Day 3 IN`,
    source.Day_3_OUT AS `Day 3 OUT`,
    source.Day_4_IN AS `Day 4 IN`,
    source.Day_4_OUT AS `Day 4 OUT`,
    source.Day_5_IN AS `Day 5 IN`,
    source.Day_5_OUT AS `Day 5 OUT`,
    source.Day_6_IN AS `Day 6 IN`,
    source.Day_6_OUT AS `Day 6 OUT`,
    source.Day_7_IN AS `Day 7 IN`,
    source.Day_7_OUT AS `Day 7 OUT`,
    source.Day_8_IN AS `Day 8 IN`,
    source.Day_8_OUT AS `Day 8 OUT`,
    source.Day_9_IN AS `Day 9 IN`,
    source.Day_9_OUT AS `Day 9 OUT`,
    source.Day_10_IN AS `Day 10 IN`,
    source.Day_10_OUT AS `Day 10 OUT`,
    source.Day_11_IN AS `Day 11 IN`,
    source.Day_11_OUT AS `Day 11 OUT`,
    source.Day_12_IN AS `Day 12 IN`,
    source.Day_12_OUT AS `Day 12 OUT`,
    source.Day_13_IN AS `Day 13 IN`,
    source.Day_13_OUT AS `Day 13 OUT`,
    source.Day_14_IN AS `Day 14 IN`,
    source.Day_14_OUT AS `Day 14 OUT`,
    source.Day_15_IN AS `Day 15 IN`,
    source.Day_15_OUT AS `Day 15 OUT`,
    source.Day_16_IN AS `Day 16 IN`,
    source.Day_16_OUT AS `Day 16 OUT`,
    source.Day_17_IN AS `Day 17 IN`,
    source.Day_17_OUT AS `Day 17 OUT`,
    source.Day_18_IN AS `Day 18 IN`,
    source.Day_18_OUT AS `Day 18 OUT`,
    source.Day_19_IN AS `Day 19 IN`,
    source.Day_19_OUT AS `Day 19 OUT`,
    source.Day_20_IN AS `Day 20 IN`,
    source.Day_20_OUT AS `Day 20 OUT`,
    source.Day_21_IN AS `Day 21 IN`,
    source.Day_21_OUT AS `Day 21 OUT`,
    source.Day_22_IN AS `Day 22 IN`,
    source.Day_22_OUT AS `Day 22 OUT`,
    source.Day_23_IN AS `Day 23 IN`,
    source.Day_23_OUT AS `Day 23 OUT`,
    source.Day_24_IN AS `Day 24 IN`,
    source.Day_24_OUT AS `Day 24 OUT`,
    source.Day_25_IN AS `Day 25 IN`,
    source.Day_25_OUT AS `Day 25 OUT`,
    source.Day_26_IN AS `Day 26 IN`,
    source.Day_26_OUT AS `Day 26 OUT`,
    source.Day_27_IN AS `Day 27 IN`,
    source.Day_27_OUT AS `Day 27 OUT`,
    source.Day_28_IN AS `Day 28 IN`,
    source.Day_28_OUT AS `Day 28 OUT`,
    source.Day_29_IN AS `Day 29 IN`,
    source.Day_29_OUT AS `Day 29 OUT`,
    source.Day_30_IN AS `Day 30 IN`,
    source.Day_30_OUT AS `Day 30 OUT`,
    source.Day_31_IN AS `Day 31 IN`,
    source.Day_31_OUT AS `Day 31 OUT`
FROM 
    (SELECT
        employee,
        employee_name,
        DATE_FORMAT(MIN(time), '%d-%m-%Y') AS `From_Date`,
        DATE_FORMAT(MAX(time), '%d-%m-%Y') AS `To_Date`,
        MAX(CASE WHEN DAY(time) = 1 THEN min_time END) AS `Day_1_IN`,
        MAX(CASE WHEN DAY(time) = 1 THEN max_time END) AS `Day_1_OUT`,
        MAX(CASE WHEN DAY(time) = 2 THEN min_time END) AS `Day_2_IN`,
        MAX(CASE WHEN DAY(time) = 2 THEN max_time END) AS `Day_2_OUT`,
        MAX(CASE WHEN DAY(time) = 3 THEN min_time END) AS `Day_3_IN`,
        MAX(CASE WHEN DAY(time) = 3 THEN max_time END) AS `Day_3_OUT`,
        MAX(CASE WHEN DAY(time) = 4 THEN min_time END) AS `Day_4_IN`,
        MAX(CASE WHEN DAY(time) = 4 THEN max_time END) AS `Day_4_OUT`,
        MAX(CASE WHEN DAY(time) = 5 THEN min_time END) AS `Day_5_IN`,
        MAX(CASE WHEN DAY(time) = 5 THEN max_time END) AS `Day_5_OUT`,
        MAX(CASE WHEN DAY(time) = 6 THEN min_time END) AS `Day_6_IN`,
        MAX(CASE WHEN DAY(time) = 6 THEN max_time END) AS `Day_6_OUT`,
        MAX(CASE WHEN DAY(time) = 7 THEN min_time END) AS `Day_7_IN`,
        MAX(CASE WHEN DAY(time) = 7 THEN max_time END) AS `Day_7_OUT`,
        MAX(CASE WHEN DAY(time) = 8 THEN min_time END) AS `Day_8_IN`,
        MAX(CASE WHEN DAY(time) = 8 THEN max_time END) AS `Day_8_OUT`,
        MAX(CASE WHEN DAY(time) = 9 THEN min_time END) AS `Day_9_IN`,
        MAX(CASE WHEN DAY(time) = 9 THEN max_time END) AS `Day_9_OUT`,
        MAX(CASE WHEN DAY(time) = 10 THEN min_time END) AS `Day_10_IN`,
        MAX(CASE WHEN DAY(time) = 10 THEN max_time END) AS `Day_10_OUT`,
        MAX(CASE WHEN DAY(time) = 11 THEN min_time END) AS `Day_11_IN`,
        MAX(CASE WHEN DAY(time) = 11 THEN max_time END) AS `Day_11_OUT`,
        MAX(CASE WHEN DAY(time) = 12 THEN min_time END) AS `Day_12_IN`,
        MAX(CASE WHEN DAY(time) = 12 THEN max_time END) AS `Day_12_OUT`,
        MAX(CASE WHEN DAY(time) = 13 THEN min_time END) AS `Day_13_IN`,
        MAX(CASE WHEN DAY(time) = 13 THEN max_time END) AS `Day_13_OUT`,
        MAX(CASE WHEN DAY(time) = 14 THEN min_time END) AS `Day_14_IN`,
        MAX(CASE WHEN DAY(time) = 14 THEN max_time END) AS `Day_14_OUT`,
        MAX(CASE WHEN DAY(time) = 15 THEN min_time END) AS `Day_15_IN`,
        MAX(CASE WHEN DAY(time) = 15 THEN max_time END) AS `Day_15_OUT`,
        MAX(CASE WHEN DAY(time) = 16 THEN min_time END) AS `Day_16_IN`,
        MAX(CASE WHEN DAY(time) = 16 THEN max_time END) AS `Day_16_OUT`,
        MAX(CASE WHEN DAY(time) = 17 THEN min_time END) AS `Day_17_IN`,
        MAX(CASE WHEN DAY(time) = 17 THEN max_time END) AS `Day_17_OUT`,
        MAX(CASE WHEN DAY(time) = 18 THEN min_time END) AS `Day_18_IN`,
        MAX(CASE WHEN DAY(time) = 18 THEN max_time END) AS `Day_18_OUT`,
        MAX(CASE WHEN DAY(time) = 19 THEN min_time END) AS `Day_19_IN`,
        MAX(CASE WHEN DAY(time) = 19 THEN max_time END) AS `Day_19_OUT`,
        MAX(CASE WHEN DAY(time) = 20 THEN min_time END) AS `Day_20_IN`,
        MAX(CASE WHEN DAY(time) = 20 THEN max_time END) AS `Day_20_OUT`,
        MAX(CASE WHEN DAY(time) = 21 THEN min_time END) AS `Day_21_IN`,
        MAX(CASE WHEN DAY(time) = 21 THEN max_time END) AS `Day_21_OUT`,
        MAX(CASE WHEN DAY(time) = 22 THEN min_time END) AS `Day_22_IN`,
        MAX(CASE WHEN DAY(time) = 22 THEN max_time END) AS `Day_22_OUT`,
        MAX(CASE WHEN DAY(time) = 23 THEN min_time END) AS `Day_23_IN`,
        MAX(CASE WHEN DAY(time) = 23 THEN max_time END) AS `Day_23_OUT`,
        MAX(CASE WHEN DAY(time) = 24 THEN min_time END) AS `Day_24_IN`,
        MAX(CASE WHEN DAY(time) = 24 THEN max_time END) AS `Day_24_OUT`,
        MAX(CASE WHEN DAY(time) = 25 THEN min_time END) AS `Day_25_IN`,
        MAX(CASE WHEN DAY(time) = 25 THEN max_time END) AS `Day_25_OUT`,
        MAX(CASE WHEN DAY(time) = 26 THEN min_time END) AS `Day_26_IN`,
        MAX(CASE WHEN DAY(time) = 26 THEN max_time END) AS `Day_26_OUT`,
        MAX(CASE WHEN DAY(time) = 27 THEN min_time END) AS `Day_27_IN`,
        MAX(CASE WHEN DAY(time) = 27 THEN max_time END) AS `Day_27_OUT`,
        MAX(CASE WHEN DAY(time) = 28 THEN min_time END) AS `Day_28_IN`,
        MAX(CASE WHEN DAY(time) = 28 THEN max_time END) AS `Day_28_OUT`,
        MAX(CASE WHEN DAY(time) = 29 THEN min_time END) AS `Day_29_IN`,
        MAX(CASE WHEN DAY(time) = 29 THEN max_time END) AS `Day_29_OUT`,
        MAX(CASE WHEN DAY(time) = 30 THEN min_time END) AS `Day_30_IN`,
        MAX(CASE WHEN DAY(time) = 30 THEN max_time END) AS `Day_30_OUT`,
        MAX(CASE WHEN DAY(time) = 31 THEN min_time END) AS `Day_31_IN`,
        MAX(CASE WHEN DAY(time) = 31 THEN max_time END) AS `Day_31_OUT`
     FROM 
         (SELECT
              employee,
              employee_name,
              DATE(time) AS time,
              TIME_FORMAT(MIN(TIME(time)), '%H:%i') AS min_time,
              TIME_FORMAT(MAX(TIME(time)), '%H:%i') AS max_time
          FROM `tabEmployee Checkin`
          WHERE 
              TRUE
              [[AND time >= {{From_date}}]]
              [[AND time <= DATE_ADD({{To_date}}, INTERVAL 1 DAY)]]
          GROUP BY
              employee,
              employee_name,
              DATE(time)
         ) AS inner_source
     GROUP BY
         employee,
         employee_name
    ) AS source
LEFT JOIN 
    `tabEmployee` TabEmployee 
ON 
    source.employee = TabEmployee.employee
WHERE 
    (TabEmployee.branch = {{Branch}} OR {{Branch}} IS NULL)
LIMIT 1048575;
SELECT 
    source.employee AS `Employee`,
    source.employee_name AS `Employee Name`,
    TabEmployee.department AS `Department`,
    TabEmployee.designation AS `Designation`,
    TabEmployee.branch AS `Branch`,
    source.From_Date AS `From Date`,
    source.To_Date AS `To Date`,
    source.Day_1_Min AS `Day 1 Min`,
    source.Day_1_Max AS `Day 1 Max`,
    source.Day_2_Min AS `Day 2 Min`,
    source.Day_2_Max AS `Day 2 Max`,
    source.Day_3_Min AS `Day 3 Min`,
    source.Day_3_Max AS `Day 3 Max`,
    source.Day_4_Min AS `Day 4 Min`,
    source.Day_4_Max AS `Day 4 Max`,
    source.Day_5_Min AS `Day 5 Min`,
    source.Day_5_Max AS `Day 5 Max`,
    source.Day_6_Min AS `Day 6 Min`,
    source.Day_6_Max AS `Day 6 Max`,
    source.Day_7_Min AS `Day 7 Min`,
    source.Day_7_Max AS `Day 7 Max`,
    source.Day_8_Min AS `Day 8 Min`,
    source.Day_8_Max AS `Day 8 Max`,
    source.Day_9_Min AS `Day 9 Min`,
    source.Day_9_Max AS `Day 9 Max`,
    source.Day_10_Min AS `Day 10 Min`,
    source.Day_10_Max AS `Day 10 Max`,
    source.Day_11_Min AS `Day 11 Min`,
    source.Day_11_Max AS `Day 11 Max`,
    source.Day_12_Min AS `Day 12 Min`,
    source.Day_12_Max AS `Day 12 Max`,
    source.Day_13_Min AS `Day 13 Min`,
    source.Day_13_Max AS `Day 13 Max`,
    source.Day_14_Min AS `Day 14 Min`,
    source.Day_14_Max AS `Day 14 Max`,
    source.Day_15_Min AS `Day 15 Min`,
    source.Day_15_Max AS `Day 15 Max`,
    source.Day_16_Min AS `Day 16 Min`,
    source.Day_16_Max AS `Day 16 Max`,
    source.Day_17_Min AS `Day 17 Min`,
    source.Day_17_Max AS `Day 17 Max`,
    source.Day_18_Min AS `Day 18 Min`,
    source.Day_18_Max AS `Day 18 Max`,
    source.Day_19_Min AS `Day 19 Min`,
    source.Day_19_Max AS `Day 19 Max`,
    source.Day_20_Min AS `Day 20 Min`,
    source.Day_20_Max AS `Day 20 Max`,
    source.Day_21_Min AS `Day 21 Min`,
    source.Day_21_Max AS `Day 21 Max`,
    source.Day_22_Min AS `Day 22 Min`,
    source.Day_22_Max AS `Day 22 Max`,
    source.Day_23_Min AS `Day 23 Min`,
    source.Day_23_Max AS `Day 23 Max`,
    source.Day_24_Min AS `Day 24 Min`,
    source.Day_24_Max AS `Day 24 Max`,
    source.Day_25_Min AS `Day 25 Min`,
    source.Day_25_Max AS `Day 25 Max`,
    source.Day_26_Min AS `Day 26 Min`,
    source.Day_26_Max AS `Day 26 Max`,
    source.Day_27_Min AS `Day 27 Min`,
    source.Day_27_Max AS `Day 27 Max`,
    source.Day_28_Min AS `Day 28 Min`,
    source.Day_28_Max AS `Day 28 Max`,
    source.Day_29_Min AS `Day 29 Min`,
    source.Day_29_Max AS `Day 29 Max`,
    source.Day_30_Min AS `Day 30 Min`,
    source.Day_30_Max AS `Day 30 Max`,
    source.Day_31_Min AS `Day 31 Min`,
    source.Day_31_Max AS `Day 31 Max`
FROM 
    (SELECT
        employee,
        employee_name,
        DATE_FORMAT(MIN(time), '%d-%m-%Y') AS `From_Date`,
        DATE_FORMAT(MAX(time), '%d-%m-%Y') AS `To_Date`,
        MAX(CASE WHEN DAY(time) = 1 THEN min_time END) AS `Day_1_Min`,
        MAX(CASE WHEN DAY(time) = 1 THEN max_time END) AS `Day_1_Max`,
        MAX(CASE WHEN DAY(time) = 2 THEN min_time END) AS `Day_2_Min`,
        MAX(CASE WHEN DAY(time) = 2 THEN max_time END) AS `Day_2_Max`,
        MAX(CASE WHEN DAY(time) = 3 THEN min_time END) AS `Day_3_Min`,
        MAX(CASE WHEN DAY(time) = 3 THEN max_time END) AS `Day_3_Max`,
        MAX(CASE WHEN DAY(time) = 4 THEN min_time END) AS `Day_4_Min`,
        MAX(CASE WHEN DAY(time) = 4 THEN max_time END) AS `Day_4_Max`,
        MAX(CASE WHEN DAY(time) = 5 THEN min_time END) AS `Day_5_Min`,
        MAX(CASE WHEN DAY(time) = 5 THEN max_time END) AS `Day_5_Max`,
        MAX(CASE WHEN DAY(time) = 6 THEN min_time END) AS `Day_6_Min`,
        MAX(CASE WHEN DAY(time) = 6 THEN max_time END) AS `Day_6_Max`,
        MAX(CASE WHEN DAY(time) = 7 THEN min_time END) AS `Day_7_Min`,
        MAX(CASE WHEN DAY(time) = 7 THEN max_time END) AS `Day_7_Max`,
        MAX(CASE WHEN DAY(time) = 8 THEN min_time END) AS `Day_8_Min`,
        MAX(CASE WHEN DAY(time) = 8 THEN max_time END) AS `Day_8_Max`,
        MAX(CASE WHEN DAY(time) = 9 THEN min_time END) AS `Day_9_Min`,
        MAX(CASE WHEN DAY(time) = 9 THEN max_time END) AS `Day_9_Max`,
        MAX(CASE WHEN DAY(time) = 10 THEN min_time END) AS `Day_10_Min`,
        MAX(CASE WHEN DAY(time) = 10 THEN max_time END) AS `Day_10_Max`,
        MAX(CASE WHEN DAY(time) = 11 THEN min_time END) AS `Day_11_Min`,
        MAX(CASE WHEN DAY(time) = 11 THEN max_time END) AS `Day_11_Max`,
        MAX(CASE WHEN DAY(time) = 12 THEN min_time END) AS `Day_12_Min`,
        MAX(CASE WHEN DAY(time) = 12 THEN max_time END) AS `Day_12_Max`,
        MAX(CASE WHEN DAY(time) = 13 THEN min_time END) AS `Day_13_Min`,
        MAX(CASE WHEN DAY(time) = 13 THEN max_time END) AS `Day_13_Max`,
        MAX(CASE WHEN DAY(time) = 14 THEN min_time END) AS `Day_14_Min`,
        MAX(CASE WHEN DAY(time) = 14 THEN max_time END) AS `Day_14_Max`,
        MAX(CASE WHEN DAY(time) = 15 THEN min_time END) AS `Day_15_Min`,
        MAX(CASE WHEN DAY(time) = 15 THEN max_time END) AS `Day_15_Max`,
        MAX(CASE WHEN DAY(time) = 16 THEN min_time END) AS `Day_16_Min`,
        MAX(CASE WHEN DAY(time) = 16 THEN max_time END) AS `Day_16_Max`,
        MAX(CASE WHEN DAY(time) = 17 THEN min_time END) AS `Day_17_Min`,
        MAX(CASE WHEN DAY(time) = 17 THEN max_time END) AS `Day_17_Max`,
        MAX(CASE WHEN DAY(time) = 18 THEN min_time END) AS `Day_18_Min`,
        MAX(CASE WHEN DAY(time) = 18 THEN max_time END) AS `Day_18_Max`,
        MAX(CASE WHEN DAY(time) = 19 THEN min_time END) AS `Day_19_Min`,
        MAX(CASE WHEN DAY(time) = 19 THEN max_time END) AS `Day_19_Max`,
        MAX(CASE WHEN DAY(time) = 20 THEN min_time END) AS `Day_20_Min`,
        MAX(CASE WHEN DAY(time) = 20 THEN max_time END) AS `Day_20_Max`,
        MAX(CASE WHEN DAY(time) = 21 THEN min_time END) AS `Day_21_Min`,
        MAX(CASE WHEN DAY(time) = 21 THEN max_time END) AS `Day_21_Max`,
        MAX(CASE WHEN DAY(time) = 22 THEN min_time END) AS `Day_22_Min`,
        MAX(CASE WHEN DAY(time) = 22 THEN max_time END) AS `Day_22_Max`,
        MAX(CASE WHEN DAY(time) = 23 THEN min_time END) AS `Day_23_Min`,
        MAX(CASE WHEN DAY(time) = 23 THEN max_time END) AS `Day_23_Max`,
        MAX(CASE WHEN DAY(time) = 24 THEN min_time END) AS `Day_24_Min`,
        MAX(CASE WHEN DAY(time) = 24 THEN max_time END) AS `Day_24_Max`,
        MAX(CASE WHEN DAY(time) = 25 THEN min_time END) AS `Day_25_Min`,
        MAX(CASE WHEN DAY(time) = 25 THEN max_time END) AS `Day_25_Max`,
        MAX(CASE WHEN DAY(time) = 26 THEN min_time END) AS `Day_26_Min`,
        MAX(CASE WHEN DAY(time) = 26 THEN max_time END) AS `Day_26_Max`,
        MAX(CASE WHEN DAY(time) = 27 THEN min_time END) AS `Day_27_Min`,
        MAX(CASE WHEN DAY(time) = 27 THEN max_time END) AS `Day_27_Max`,
        MAX(CASE WHEN DAY(time) = 28 THEN min_time END) AS `Day_28_Min`,
        MAX(CASE WHEN DAY(time) = 28 THEN max_time END) AS `Day_28_Max`,
        MAX(CASE WHEN DAY(time) = 29 THEN min_time END) AS `Day_29_Min`,
        MAX(CASE WHEN DAY(time) = 29 THEN max_time END) AS `Day_29_Max`,
        MAX(CASE WHEN DAY(time) = 30 THEN min_time END) AS `Day_30_Min`,
        MAX(CASE WHEN DAY(time) = 30 THEN max_time END) AS `Day_30_Max`,
        MAX(CASE WHEN DAY(time) = 31 THEN min_time END) AS `Day_31_Min`,
        MAX(CASE WHEN DAY(time) = 31 THEN max_time END) AS `Day_31_Max`
     FROM 
         (SELECT
              employee,
              employee_name,
              DATE(time) AS time,
              TIME_FORMAT(MIN(TIME(time)), '%H:%i') AS min_time,
              TIME_FORMAT(MAX(TIME(time)), '%H:%i') AS max_time
          FROM `tabEmployee Checkin`
          WHERE 
              TRUE
              [[AND time >= {{From_date}}]]
              [[AND time <= DATE_ADD({{To_date}}, INTERVAL 1 DAY)]]
          GROUP BY
              employee,
              employee_name,
              DATE(time)
         ) AS inner_source
     GROUP BY
         employee,
         employee_name
    ) AS source
LEFT JOIN 
    `tabEmployee` TabEmployee 
ON 
    source.employee = TabEmployee.employee
WHERE 
    (TabEmployee.branch = {{Branch}} OR {{Branch}} IS NULL)
LIMIT 1048575;
SELECT 
    source.employee AS `Employee`,
    source.employee_name AS `Employee Name`,
    TabEmployee.department AS `Department`,
    TabEmployee.designation AS `Designation`,
    TabEmployee.branch AS `Branch`,
    source.From_Date AS `From Date`,
    source.To_Date AS `To Date`,
    source.Day_1_Min AS `Day 1 Min`,
    source.Day_1_Max AS `Day 1 Max`,
    source.Day_2_Min AS `Day 2 Min`,
    source.Day_2_Max AS `Day 2 Max`,
    source.Day_3_Min AS `Day 3 Min`,
    source.Day_3_Max AS `Day 3 Max`,
    source.Day_4_Min AS `Day 4 Min`,
    source.Day_4_Max AS `Day 4 Max`,
    source.Day_5_Min AS `Day 5 Min`,
    source.Day_5_Max AS `Day 5 Max`,
    source.Day_6_Min AS `Day 6 Min`,
    source.Day_6_Max AS `Day 6 Max`,
    source.Day_7_Min AS `Day 7 Min`,
    source.Day_7_Max AS `Day 7 Max`,
    source.Day_8_Min AS `Day 8 Min`,
    source.Day_8_Max AS `Day 8 Max`,
    source.Day_9_Min AS `Day 9 Min`,
    source.Day_9_Max AS `Day 9 Max`,
    source.Day_10_Min AS `Day 10 Min`,
    source.Day_10_Max AS `Day 10 Max`,
    source.Day_11_Min AS `Day 11 Min`,
    source.Day_11_Max AS `Day 11 Max`,
    source.Day_12_Min AS `Day 12 Min`,
    source.Day_12_Max AS `Day 12 Max`,
    source.Day_13_Min AS `Day 13 Min`,
    source.Day_13_Max AS `Day 13 Max`,
    source.Day_14_Min AS `Day 14 Min`,
    source.Day_14_Max AS `Day 14 Max`,
    source.Day_15_Min AS `Day 15 Min`,
    source.Day_15_Max AS `Day 15 Max`,
    source.Day_16_Min AS `Day 16 Min`,
    source.Day_16_Max AS `Day 16 Max`,
    source.Day_17_Min AS `Day 17 Min`,
    source.Day_17_Max AS `Day 17 Max`,
    source.Day_18_Min AS `Day 18 Min`,
    source.Day_18_Max AS `Day 18 Max`,
    source.Day_19_Min AS `Day 19 Min`,
    source.Day_19_Max AS `Day 19 Max`,
    source.Day_20_Min AS `Day 20 Min`,
    source.Day_20_Max AS `Day 20 Max`,
    source.Day_21_Min AS `Day 21 Min`,
    source.Day_21_Max AS `Day 21 Max`,
    source.Day_22_Min AS `Day 22 Min`,
    source.Day_22_Max AS `Day 22 Max`,
    source.Day_23_Min AS `Day 23 Min`,
    source.Day_23_Max AS `Day 23 Max`,
    source.Day_24_Min AS `Day 24 Min`,
    source.Day_24_Max AS `Day 24 Max`,
    source.Day_25_Min AS `Day 25 Min`,
    source.Day_25_Max AS `Day 25 Max`,
    source.Day_26_Min AS `Day 26 Min`,
    source.Day_26_Max AS `Day 26 Max`,
    source.Day_27_Min AS `Day 27 Min`,
    source.Day_27_Max AS `Day 27 Max`,
    source.Day_28_Min AS `Day 28 Min`,
    source.Day_28_Max AS `Day 28 Max`,
    source.Day_29_Min AS `Day 29 Min`,
    source.Day_29_Max AS `Day 29 Max`,
    source.Day_30_Min AS `Day 30 Min`,
    source.Day_30_Max AS `Day 30 Max`,
    source.Day_31_Min AS `Day 31 Min`,
    source.Day_31_Max AS `Day 31 Max`
FROM 
    (SELECT
        employee,
        employee_name,
        DATE_FORMAT(MIN(time), '%d-%m-%Y') AS `From_Date`,
        DATE_FORMAT(MAX(time), '%d-%m-%Y') AS `To_Date`,
        MAX(CASE WHEN DAY(time) = 1 THEN min_time END) AS `Day_1_Min`,
        MAX(CASE WHEN DAY(time) = 1 THEN max_time END) AS `Day_1_Max`,
        MAX(CASE WHEN DAY(time) = 2 THEN min_time END) AS `Day_2_Min`,
        MAX(CASE WHEN DAY(time) = 2 THEN max_time END) AS `Day_2_Max`,
        MAX(CASE WHEN DAY(time) = 3 THEN min_time END) AS `Day_3_Min`,
        MAX(CASE WHEN DAY(time) = 3 THEN max_time END) AS `Day_3_Max`,
        MAX(CASE WHEN DAY(time) = 4 THEN min_time END) AS `Day_4_Min`,
        MAX(CASE WHEN DAY(time) = 4 THEN max_time END) AS `Day_4_Max`,
        MAX(CASE WHEN DAY(time) = 5 THEN min_time END) AS `Day_5_Min`,
        MAX(CASE WHEN DAY(time) = 5 THEN max_time END) AS `Day_5_Max`,
        MAX(CASE WHEN DAY(time) = 6 THEN min_time END) AS `Day_6_Min`,
        MAX(CASE WHEN DAY(time) = 6 THEN max_time END) AS `Day_6_Max`,
        MAX(CASE WHEN DAY(time) = 7 THEN min_time END) AS `Day_7_Min`,
        MAX(CASE WHEN DAY(time) = 7 THEN max_time END) AS `Day_7_Max`,
        MAX(CASE WHEN DAY(time) = 8 THEN min_time END) AS `Day_8_Min`,
        MAX(CASE WHEN DAY(time) = 8 THEN max_time END) AS `Day_8_Max`,
        MAX(CASE WHEN DAY(time) = 9 THEN min_time END) AS `Day_9_Min`,
        MAX(CASE WHEN DAY(time) = 9 THEN max_time END) AS `Day_9_Max`,
        MAX(CASE WHEN DAY(time) = 10 THEN min_time END) AS `Day_10_Min`,
        MAX(CASE WHEN DAY(time) = 10 THEN max_time END) AS `Day_10_Max`,
        MAX(CASE WHEN DAY(time) = 11 THEN min_time END) AS `Day_11_Min`,
        MAX(CASE WHEN DAY(time) = 11 THEN max_time END) AS `Day_11_Max`,
        MAX(CASE WHEN DAY(time) = 12 THEN min_time END) AS `Day_12_Min`,
        MAX(CASE WHEN DAY(time) = 12 THEN max_time END) AS `Day_12_Max`,
        MAX(CASE WHEN DAY(time) = 13 THEN min_time END) AS `Day_13_Min`,
        MAX(CASE WHEN DAY(time) = 13 THEN max_time END) AS `Day_13_Max`,
        MAX(CASE WHEN DAY(time) = 14 THEN min_time END) AS `Day_14_Min`,
        MAX(CASE WHEN DAY(time) = 14 THEN max_time END) AS `Day_14_Max`,
        MAX(CASE WHEN DAY(time) = 15 THEN min_time END) AS `Day_15_Min`,
        MAX(CASE WHEN DAY(time) = 15 THEN max_time END) AS `Day_15_Max`,
        MAX(CASE WHEN DAY(time) = 16 THEN min_time END) AS `Day_16_Min`,
        MAX(CASE WHEN DAY(time) = 16 THEN max_time END) AS `Day_16_Max`,
        MAX(CASE WHEN DAY(time) = 17 THEN min_time END) AS `Day_17_Min`,
        MAX(CASE WHEN DAY(time) = 17 THEN max_time END) AS `Day_17_Max`,
        MAX(CASE WHEN DAY(time) = 18 THEN min_time END) AS `Day_18_Min`,
        MAX(CASE WHEN DAY(time) = 18 THEN max_time END) AS `Day_18_Max`,
        MAX(CASE WHEN DAY(time) = 19 THEN min_time END) AS `Day_19_Min`,
        MAX(CASE WHEN DAY(time) = 19 THEN max_time END) AS `Day_19_Max`,
        MAX(CASE WHEN DAY(time) = 20 THEN min_time END) AS `Day_20_Min`,
        MAX(CASE WHEN DAY(time) = 20 THEN max_time END) AS `Day_20_Max`,
        MAX(CASE WHEN DAY(time) = 21 THEN min_time END) AS `Day_21_Min`,
        MAX(CASE WHEN DAY(time) = 21 THEN max_time END) AS `Day_21_Max`,
        MAX(CASE WHEN DAY(time) = 22 THEN min_time END) AS `Day_22_Min`,
        MAX(CASE WHEN DAY(time) = 22 THEN max_time END) AS `Day_22_Max`,
        MAX(CASE WHEN DAY(time) = 23 THEN min_time END) AS `Day_23_Min`,
        MAX(CASE WHEN DAY(time) = 23 THEN max_time END) AS `Day_23_Max`,
        MAX(CASE WHEN DAY(time) = 24 THEN min_time END) AS `Day_24_Min`,
        MAX(CASE WHEN DAY(time) = 24 THEN max_time END) AS `Day_24_Max`,
        MAX(CASE WHEN DAY(time) = 25 THEN min_time END) AS `Day_25_Min`,
        MAX(CASE WHEN DAY(time) = 25 THEN max_time END) AS `Day_25_Max`,
        MAX(CASE WHEN DAY(time) = 26 THEN min_time END) AS `Day_26_Min`,
        MAX(CASE WHEN DAY(time) = 26 THEN max_time END) AS `Day_26_Max`,
        MAX(CASE WHEN DAY(time) = 27 THEN min_time END) AS `Day_27_Min`,
        MAX(CASE WHEN DAY(time) = 27 THEN max_time END) AS `Day_27_Max`,
        MAX(CASE WHEN DAY(time) = 28 THEN min_time END) AS `Day_28_Min`,
        MAX(CASE WHEN DAY(time) = 28 THEN max_time END) AS `Day_28_Max`,
        MAX(CASE WHEN DAY(time) = 29 THEN min_time END) AS `Day_29_Min`,
        MAX(CASE WHEN DAY(time) = 29 THEN max_time END) AS `Day_29_Max`,
        MAX(CASE WHEN DAY(time) = 30 THEN min_time END) AS `Day_30_Min`,
        MAX(CASE WHEN DAY(time) = 30 THEN max_time END) AS `Day_30_Max`,
        MAX(CASE WHEN DAY(time) = 31 THEN min_time END) AS `Day_31_Min`,
        MAX(CASE WHEN DAY(time) = 31 THEN max_time END) AS `Day_31_Max`
     FROM 
         (SELECT
              employee,
              employee_name,
              DATE(time) AS time,
              TIME_FORMAT(MIN(TIME(time)), '%H:%i') AS min_time,
              TIME_FORMAT(MAX(TIME(time)), '%H:%i') AS max_time
          FROM `tabEmployee Checkin`
          WHERE 
              TRUE
              [[AND time >= {{From_date}}]]
              [[AND time <= DATE_ADD({{To_date}}, INTERVAL 1 DAY)]]
          GROUP BY
              employee,
              employee_name,
              DATE(time)
         ) AS inner_source
     GROUP BY
         employee,
         employee_name
    ) AS source
LEFT JOIN 
    `tabEmployee` TabEmployee 
ON 
    source.employee = TabEmployee.employee
WHERE 
    (TabEmployee.branch = {{Branch}} OR {{Branch}} IS NULL)
LIMIT 1048575;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Enemy : MonoBehaviour
{
    public float speed;
    public Vector3 moveOffset;
    private Vector3 targetPos;
    private Vector3 startPos;


    // Start is called before the first frame update
    void Start()
    {
        startPos = transform.position;
        targetPos = startPos;
    }

    // Update is called once per frame
    void Update()
    {
        transform.position = Vector3.MoveTowards(transform.position, targetPos, speed * Time.deltaTime);
        if (transform.position == targetPos)
        {
            if (startPos == targetPos)
            {
                targetPos = startPos + moveOffset;

            }
            else
            {
                targetPos = startPos;

            }
        }
    }

    private void OnTriggerEnter(Collider other)
    {
        if (other.CompareTag("Player"))
        {
            other.GetComponent<PlayerController>().GameOver();
        }

    }


}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Coin : MonoBehaviour
{
    public float rotateSpeed = 180.0f;

    
        // Update is called once per frame
        void Update()
        {
            transform.Rotate(Vector3.up, rotateSpeed * Time.deltaTime);
        }

        private void OnTriggerEnter(Collider other)
        {
            if (other.CompareTag("Player"))
        
            {
                other.GetComponent<PlayerController>().AddScore(1);
                Destroy(gameObject);
            }
        }
}
    

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CameraFollow : MonoBehaviour
{
  public Transform target;
  public Vector3 offset;

  void Update()
   {
     transform.position = target.position + offset;
   } 
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;


public class PlayerController : MonoBehaviour
{
    public Rigidbody rig;
    public float moveSpeed;
    public int score;
    public float jumpForce;
    private bool isGrounded;

    void Update()

    {

        float x = Input.GetAxisRaw("Horizontal") * moveSpeed;
        float z = Input.GetAxisRaw("Vertical") * moveSpeed;

        rig.velocity = new Vector3(x, rig.velocity.y, z);

        Vector3 vel = rig.velocity;

        vel.y = 0;

        if (vel.x != 0 || vel.z != 0)
        {
            transform.forward = vel;

        }

        if (Input.GetKeyDown(KeyCode.Space) && isGrounded == true)
        {
            isGrounded = false;
            rig.AddForce(Vector3.up * jumpForce, ForceMode.Impulse);
        }
        if (transform.position.y < -5)
        {
          GetComponent<PlayerController>().GameOver();
        }


    }

    void OnCollisionEnter(Collision collision)
    {
        if (collision.GetContact(0).normal == Vector3.up)
        {
            isGrounded = true;

        }


    }
    public void GameOver()
    {
        SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
    }
    
    public void AddScore(int amount)
    {
        score += amount; 

    }
}
using System;
 
using System.Collections.Generic;
 
using System.Linq;
 
using System.Reflection;
 
using System.Runtime.InteropServices;
 
using System.Security.Claims;
 
using System.Security.Cryptography.X509Certificates;
 
using System.Text;
 
using System.Threading.Tasks;
 
using System.Xml.Linq;
 
using Unit4.CollectionsLib;
 
 
 
namespace OpenS
 
{
 
    internal class Program
 
    {
 
        static void Main(string[] args)
 
        {
 
            // יצירת שרשרת חוליות (של מספרים שלמים) חדשה בעלת איבר אחד, איבר הבא נאל
 
            Node<int> node = new Node<int>(1);
 
            Console.WriteLine("Chain: " + node); // הדפסת השרשרת       
 
 
 
            node.SetValue(2); // עדכון ערך השרשרת
 
            Console.WriteLine("New Chain: " + node); // הדפסת השרשרת החדשה  
 
 
 
            // יצירת שרשרת חוליות (של מספרים שלמים) חדשה בעלת איבר אחד, איבר הבא נאל
 
            Node<int> chain = new Node<int>(1);
 
            Console.Write("New Chain: "); PrintChain(chain); // הדפסת (כל) השרשרת
 
 
 
            // יצירת שרשרת חוליות (של מספרים שלמים), איבר הבא נאל
 
            Node<int> chain1 = new Node<int>(1, new Node<int>(2, new Node<int>(3, new Node<int>(4, new Node<int>(5)))));
 
            Console.Write("New Chain: "); PrintChain(chain1); ; // הדפסת השרשרת
 
 
 
            // גישה לערכים
 
            Console.WriteLine("First Node Value: " + chain1.GetValue()); // קבלת הערך של האיבר הראשון
 
            Console.WriteLine("Second Node Value: " + chain1.GetNext().GetValue()); // קבלת הערך של האיבר השני
 
            Console.WriteLine("Third Node Value: " + chain1.GetNext().GetNext().GetValue()); // קבלת הערך של האיבר השלישי
 
            //...
 
 
 
            Node<int> chain2 = new Node<int>(1, new Node<int>(2, new Node<int>(3, new Node<int>(4, new Node<int>(5))))); // יצירת שרשרת חדשה
 
            Console.Write("New Chain: "); PrintChainReverse(chain2); // הפעלת פונקציה שלוקחת שרשרת מקושרת ומחזירה את איברי השרשרת בסדר הפוך
 
 
 
            Node<int> chain3 = new Node<int>(1, new Node<int>(2, new Node<int>(3, new Node<int>(4, new Node<int>(5))))); // יצירת שרשרת חדשה
 
            int size = SizeOfChain(chain3); // הפעלת פונקציה שלוקחת שרשרת ומחזירה את כמות האיברים בשרשרשת מקושרת
 
            Console.WriteLine("Size Of Chain: " + size); // הדפסת השרשרת החדשה
 
 
 
            Node<int> chain4 = new Node<int>(1, new Node<int>(2, new Node<int>(3, new Node<int>(4, new Node<int>(5)))));
 
            int NodeValue1 = 1;
 
            int NodeValue2 = 0;
 
 
 
            bool IsNodeExists1 = IsNodeExists(chain4, NodeValue1); // הפעלת פונקציה שבודקת אם ערך ווליו שמתקבל קיים בשרשרת
 
            Console.WriteLine("Is The Value " + NodeValue1 + " Exist? " + IsNodeExists1);
 
 
 
            bool IsNodeExists2 = IsNodeExists(chain4, NodeValue2); // הפעלת פונקציה שבודקת אם ערך ווליו שמתקבל קיים בשרשרת
 
            Console.WriteLine("Is The Value " + NodeValue2 + " Exist? " + IsNodeExists2);
 
 
 
            Node<int> chain5 = new Node<int>(1, new Node<int>(2, new Node<int>(3, new Node<int>(4, new Node<int>(5)))));
 
            chain5 = RemoveFirst(chain5); // הפעלת פונקציה שלוקחת שרשרת ומסירה את האיבר הראשון בשרשרת מקושרת
 
            Console.Write("New Chain: "); PrintChain(chain5); // הדפסת השרשרת החדשה
 
 
 
            Node<int> chain6 = new Node<int>(1, new Node<int>(2, new Node<int>(3, new Node<int>(4, new Node<int>(5)))));
 
            chain5 = RemoveLast(chain6); // הפעלת פונקציה שלוקחת שרשרת ומסירה את האיבר האחרון בשרשרת מקושרת
 
            Console.Write("New Chain: "); PrintChain(chain6); // הדפסת השרשרת החדשה
 
 
 
            Node<int> chain7 = new Node<int>(1, new Node<int>(3, new Node<int>(3, new Node<int>(4, new Node<int>(5)))));
 
            int value1 = 3;
 
            bool IsNodeExists3 = IsNodeExists(chain7, value1); // בדיקה אם הערך שאנחנו רוצים להוציא מהשרשרת המקושרת בכלל קיים
 
 
 
            if (IsNodeExists3 == true) // אם הערך קיים
 
            {
 
                chain6 = RemoveByValue(chain6, value1); // הפעלת הפונקציה שמסירה איבר לפי ערך
 
                Console.Write("New Chain: "); PrintChain(chain6); // הדפסת השרשרת החדשה
 
            }
 
 
 
            Node<int> chain8 = new Node<int>(1, new Node<int>(2, new Node<int>(3, new Node<int>(4, new Node<int>(5)))));
 
            int index = 3;
 
            chain8 = RemoveByIndex(chain8, index); // הפעלת הפונקציה שמירה איבר לפי אינדקס
 
            Console.Write("New Chain: "); PrintChain(chain8); // הדפסת השרשרת החדשה
 
 
 
            // יצירת שרשרת חוליות של מספרים שלמים. נקסט אחרון שווה נאל
 
            Node<int> chain9 = new Node<int>(1, new Node<int>(2, new Node<int>(3, new Node<int>(4, new Node<int>(5))))); // יצירת שרשרת חוליות של מספרים שלמים. נקסט אחרון שווה נאל
 
            // יצירת שרשרת חוליות של מספרים שלמים. נקסט אחרון שווה נאל
 
            Node<int> chain10 = new Node<int>(5, new Node<int>(4, new Node<int>(3, new Node<int>(2, new Node<int>(1))))); // יצירת שרשרת חוליות של מספרים שלמים. נקסט אחרון שווה נאל
 
 
 
            bool isSorted1 = IsSortedAscending(chain7); // הפעלת הפונקציה שבודקת אם סדר האיברים עולה ברשימה מקושרת
 
            Console.WriteLine("Is Chain Sorted Ascending? " + isSorted1);
 
            bool isSorted2 = IsSortedAscending(chain8); // הפעלת הפונקציה שבודקת אם סדר האיברים עולה ברשימה מקושרת
 
            Console.WriteLine("Is Chain Sorted Ascending? " + isSorted2);
 
 
 
            bool isSorted3 = IsSortedDescending(chain9); // הפעלת הפונקציה שבודקת אם סדר האיברים יורד ברשימה מקושרת
 
            Console.WriteLine("Is Chain Sorted Descending? " + isSorted3);
 
            bool isSorted4 = IsSortedDescending(chain10); // הפעלת הפונקציה שבודקת אם סדר האיברים יורד ברשימה מקושרת
 
            Console.WriteLine("Is Chain Sorted Descending? " + isSorted4);
 
 
 
            Node<int> chain11 = new Node<int>(1, new Node<int>(2, new Node<int>(3, new Node<int>(4, new Node<int>(5)))));
 
            double average = Average(chain11); // הפעלת פונקציה שמחשבת את הממוצע ברשימה מקושרת ושמירתו במשתנה
 
            Console.WriteLine("The Average: " + average); // הדפסת הממוצע 
 
 
 
            Node<int> chain12 = new Node<int>(1, new Node<int>(2, new Node<int>(3, new Node<int>(4, new Node<int>(5)))));
 
            int number = 6;
 
            chain12 = AddNodeStart(chain12, number); // עפעלת פונקציה שמוסיפה איבר בתחילת שרשרת מקושרת
 
            Console.Write("New Chain: "); PrintChain(chain12); // הדפסת השרשרת החדשה
 
 
 
            Node<int> chain13 = new Node<int>(1, new Node<int>(2, new Node<int>(3, new Node<int>(4, new Node<int>(5)))));
 
            int number1 = 0;
 
            AddNodeEnd(chain13, number1); // הפעלת פונקציה שמוסיפה איבר בסוף שרשרת מקושרת
 
            Console.Write("New Chain: "); PrintChain(chain13); // הדפסת השרשרת החדשה
 
 
 
            Node<int> chain14 = new Node<int>(1, new Node<int>(2, new Node<int>(3, new Node<int>(4, new Node<int>(5)))));
 
            int value = 10;
 
            int index1 = 5;
 
            chain14 = AddNodeAtIndex(chain14, index1, value); // הפעלת פונקציה שמוסיפה איבר בשרשרת מקושרת לפי אינדקס 
 
            Console.Write("New Chain: "); PrintChain(chain14); // הדפסת השרשרת החדשה
 
 
 
            Node<int> chain15 = new Node<int>(1, new Node<int>(2, new Node<int>(3, new Node<int>(4, new Node<int>(5, new Node<int>(6))))));
 
            Node<int> chain16 = new Node<int>(1, new Node<int>(2, new Node<int>(3, new Node<int>(4, new Node<int>(5)))));
 
 
 
            FindAndPrintMiddle(chain15); // הדפסת האיבר/ים האמצעי/ים
 
            FindAndPrintMiddle(chain16); // הדפסת האיבר/ים האמצעי/ים
 
 
 
            Node<int> chain17 = new Node<int>(1, new Node<int>(2, new Node<int>(3, new Node<int>(4, new Node<int>(5)))));
 
            Node<int> chain18 = new Node<int>(2, new Node<int>(2, new Node<int>(10, new Node<int>(4, new Node<int>(5)))));
 
 
 
            bool isBalanced1 = IsBalanced(chain17); // הפעלת פונקציה שבודקת אם ברשימה מקושרת מספר האיברים הגדולים מהממוצע שווה למספר האיברים הקטנים מהממוצע
 
            Console.WriteLine("Is the list balanced? " + isBalanced1);
 
 
 
            bool isBalanced2 = IsBalanced(chain18); // הפעלת פונקציה שבודקת אם ברשימה מקושרת מספר האיברים הגדולים מהממוצע שווה למספר האיברים הקטנים מהממוצע 
 
            Console.WriteLine("Is the list balanced? " + isBalanced2);
 
 
 
            Node<int> chain19 =
 
                new Node<int>(2,
 
                new Node<int>(2,
 
                new Node<int>(2,
 
                new Node<int>(2,
 
                new Node<int>(3,
 
                new Node<int>(2,
 
                new Node<int>(4)))))));
 
 
 
            int numToFind = 2;
 
            int sequenceCount = sequences(chain19, numToFind);
 
            Console.WriteLine($"Number of sequences for {numToFind}: {sequenceCount}");
 
 
 
            Node<int> chain20 = new Node<int>(2, new Node<int>(0, new Node<int>(3, new Node<int>(4, new Node<int>(5, new Node<int>(6))))));
 
            int minIndex = FindMinValueIndex(chain20); // הפעלת פונקציה שמוצאת את האינדקס של הערך הנמוך ביותר בשרשרת
 
            Console.WriteLine("The index of the minimum value is: " + minIndex); // הדפסת הערך
 
 
 
            Node<int> chain21 = new Node<int>(0, new Node<int>(1, new Node<int>(3, new Node<int>(4, new Node<int>(5, new Node<int>(6))))));
 
            int maxIndex = FindMaxValueIndex(chain21); // הפעלת פונקציה שמוצאת את האינדקס של הערך הנמוך ביותר בשרשרת
 
            Console.WriteLine("The index of the maximum value is: " + maxIndex); // הדפסת הערך
 
 
 
            Node<int> chain22 = new Node<int>(1, new Node<int>(2, new Node<int>(1, new Node<int>(4, new Node<int>(5)))));
 
            List<int> minIndexes = FindMinValueIndexes(chain22); // הפעלת פונקציה שמוצאת את האינדקס/ים של הערך/ים הנמוך/ים ביותר בשרשרת
 
            Console.WriteLine("The indexes of the minimum value is: " + string.Join(", ", minIndexes)); // הדפסת הערך
 
 
 
            Node<int> chain23 = new Node<int>(5, new Node<int>(2, new Node<int>(3, new Node<int>(4, new Node<int>(5)))));
 
            List<int> maxIndexes = FindMaxValueIndexes(chain23); // הפעלת פונקציה שמוצאת את האינדקס/ים של הערך/ים הנמוך/ים ביותר בשרשרת
 
            Console.WriteLine("The indexes of the maximum value is: " + string.Join(", ", maxIndexes)); // הדפסת הערך
 
 
 
            Node<int> chain24 = new Node<int>(1, new Node<int>(2, new Node<int>(3, new Node<int>(4, new Node<int>(5)))));
 
            List<int> secondMaxIndexes = FindSecondMaxValueIndex(chain24); // הפעלת הפונקציה
 
            Console.WriteLine("The index of the second maximum value is: " + string.Join(", ", secondMaxIndexes)); // הדפסת הערכים
 
 
 
            Node<int> chain25 = new Node<int>(1, new Node<int>(2, new Node<int>(3, new Node<int>(4, new Node<int>(5)))));
 
            List<int> secondMinIndexes = FindSecondMinValueIndex(chain25); // הפעלת הפונקציה
 
            Console.WriteLine("The index of the second minimum value is: " + string.Join(", ", secondMinIndexes)); // הדפסת הערכים
 
 
 
            Node<int> chain26 = new Node<int>(1, new Node<int>(2, new Node<int>(3, new Node<int>(2, new Node<int>(1)))));
 
            Node<int> chain27 = new Node<int>(1, new Node<int>(2, new Node<int>(3, new Node<int>(4, new Node<int>(5)))));
 
            
 
            bool Palindrome1 = IsPalindrome(chain26); // הפעלת פונקציה שבודקת אם הרשימה היא פלינדרום
 
            Console.WriteLine("Is The Chain a Palindrome? " + Palindrome1);
 
            bool Palindrome2 = IsPalindrome(chain27); // הפעלת פונקציה שבודקת אם הרשימה היא פלינדרום
 
            Console.WriteLine("Is The Chain a Palindrome? " + Palindrome2);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
        }
 
 
 
        // Node<int> current = chain; 
 
        // משתנה שמצביע על האיבר הנוכני ברשימה. בתחילת הלולאה הוא מצביע על ראש הרשימה.
 
 
 
 
 
        static void PrintChain(Node<int> chain) // פונקציה להדפסת כל האיברים ברשימה מקושרת 
 
        {
 
            Node<int> current = chain; // משתנה עזר לשימירת הרשימה/השרשרת המקורית 
 
 
 
            while (current != null) // לולאה שעוברת על כל האיברים ברשימה עד לסופה
 
            {
 
                Console.Write(current.GetValue() + " ---> "); //הדפסת האיבר הנוכחי ברשימה
 
                current = current.GetNext(); // עבור לאיבר הבא ברשימה
 
            }
 
 
 
            Console.WriteLine("Null!"); // לאחר סיום הפונקציה והדפסת כל האיברים, אין עוד איברים ולכן איבר הבא נאל
 
        }
 
 
 
        static void PrintChainReverse(Node<int> chain) // פונקציה להדפסת כל האיברים בסדר הפוך ברשימה מקושרת
 
        {
 
            if (chain == null) // אם השרשרת ריקה
 
            {
 
                Console.WriteLine("The chain is null. Nothing to print."); // הודעה מתאימה
 
                return; // יציאה מהפונקציה
 
            }
 
 
 
            List<int> values = new List<int>(); // רשימה זמנית לאחסון הערכים
 
            Node<int> current = chain; // משתנה עזר לשימירת הרשימה/השרשרת המקורית
 
 
 
            // איסוף כל הערכים בשרשרת
 
            while (current != null) // כל עוד השרשרת לא ריקה
 
            {
 
                values.Add(current.GetValue()); // מוסיף את הערך לרשימה של ווליוס
 
                current = current.GetNext(); // עבור לאיבר הבא
 
            }
 
 
 
            // הדפסת הערכים מהסוף להתחלה
 
            for (int i = values.Count - 1; i >= 0; i--)
 
            {
 
                Console.Write(values[i] + " ---> ");
 
            }
 
 
 
            Console.WriteLine("Null!"); // הגענו לאיבר האחרון
 
        }
 
 
 
        public static int SizeOfChain(Node<int> chain) // פונקציה שמחזירה את כמות האיברים ברשימה מקושרת 
 
        {
 
            if (chain == null) // אם השרשרת ריקה
 
            {
 
                return 0; // אין איברים
 
            }
 
 
 
            int size = 0; // אתחול הגודל
 
            Node<int> current = chain; // משתנה עזר לשימירת הרשימה/השרשרת המקורית
 
 
 
            while (current != null) // לולאה שרצה על כל איברי השרשרת
 
            {
 
                size++; // עלה את סכום האיברים
 
                current = current.GetNext(); // עבור לאיבר הבא ברשימה
 
            }
 
 
 
            return size; // החזר את כמות האיברים
 
        }
 
 
 
        public static bool IsNodeExists(Node<int> chain, int value) // פונקציה שבודקת אם איבר קיים לפי ערך ווליו (שמתקבל בפרמטר) ברשימה מקושרת  
 
        {
 
            // משתנה עזר לשימירת הרשימה/השרשרת המקורית
 
            Node<int> current = chain;
 
 
 
            // לולאה שרצה על כל האיברים ברשימה
 
            while (current != null)
 
            {
 
                // אם הערך של האיבר הנוכחי שווה לערך שחיפשנו
 
                if (current.GetValue() == value)
 
                {
 
                    return true; // מצאנו את הערך
 
                }
 
 
 
                // עוברים לאיבר הבא
 
                current = current.GetNext();
 
            }
 
 
 
            // אם יצאנו מהלולאה בלי למצוא את הערך, האיבר לא קיים
 
            return false;
 
        }
 
 
 
        public static Node<int> RemoveFirst(Node<int> chain) // פונקציה שמסירה את האיבר הראשון ברשימה מקושרת 
 
        {
 
            if (chain == null) // אם השרשרת ריקה
 
            {
 
                return null; // מקרה קיצון, אין איברים להסרה
 
            }
 
 
 
            if (chain.GetNext() == null) // אם בשרשרת איבר יחיד
 
            {
 
                return null; // מקרה קיצון, אם בשרשרת יש רק איבר אחד ונסיר אותו לא תתקיים שרשרת
 
            }
 
 
 
            return chain.GetNext(); // הסרת האיבר הראשון והחזרת הרשימה החדשה
 
        }
 
 
 
        public static Node<int> RemoveLast(Node<int> chain) // פונקציה שמסירה את האיבר האחרון ברשימה מקושרת 
 
        {
 
            if (chain == null) // אם השרשרת ריקה
 
            {
 
                return null; // מקרה קיצון, אין איבר להסרה
 
            }
 
 
 
            if (chain.GetNext() == null) // אם בשרשרת איבר יחיד
 
            {
 
                return null; // מקרה קיצון, אם בשרשרת יש רק איבר אחד ונסיר אותו לא תתקיים שרשרת
 
            }
 
 
 
            Node<int> current = chain; // משתנה עזר לשימירת הרשימה/השרשרת המקורית
 
 
 
            while (current.GetNext().GetNext() != null) // לולאה שרצה עד לאיבר האחרון
 
            {
 
                current = current.GetNext(); // עבור לאיבר הבא 
 
            }
 
 
 
            current.SetNext(null); // הסרת האיבר האחרון
 
            return chain; // החזרת הרשימה החדשה
 
        }
 
 
 
        public static Node<int> RemoveByValue(Node<int> chain, int value) // פונקציה שמסירה את האיבר האחרון ברשימה מקושרת 
 
        {
 
            if (chain == null) // אם השרשרת ריקה
 
            {
 
                return null; // מקרה קיצון, אין איבר להסרה
 
            }
 
 
 
            if (chain.GetNext() == null) // אם בשרשרת איבר יחיד
 
            {
 
                return null; // מקרה קיצון, אם בשרשרת יש רק איבר אחד ונסיר אותו לא תתקיים שרשרת
 
            }
 
 
 
            Node<int> NewNode = new Node<int>(0); // יצירת שרשרת חדשה לאחסון השרשרת המקורית
 
            NewNode.SetNext(chain); // קישור לראש הרשימה
 
            Node<int> prev = NewNode; // משתנה לאחסון האיבר הקודם
 
            Node<int> current = chain; // משתנה עזר לשימירת הרשימה/השרשרת המקורית
 
            bool flag = false; // משתנה בוליאני שאומר האם מצאנו את האיבר להסרה
 
 
 
            while (current != null) // לולאה שעוברת על כל הרשימה
 
            {
 
                if (current.GetValue() == value) // אם מצאנו את האיבר להסרה
 
                {
 
                    prev.SetNext(current.GetNext()); // קישור האיבר הקודם לאיבר הבא של האיבר הנוכחי
 
                    flag = true; // עדכון המשתנה שמעיד שמצאנו את האיבר
 
                }
 
 
 
                else // אם לא מצאנו את האיבר הנוכחי
 
                {
 
                    prev = current; // עדכון האיבר הקודם לאיבר הנוכחי
 
                }
 
 
 
                current = current.GetNext(); // עבור לאיבר הבא
 
            }
 
 
 
            if (!flag) // אם לא מצאנו את האיבר להסרה
 
            {
 
                Console.WriteLine($"Value {value} does not exist!"); // הערך לא קיים בשרשרת
 
                return null; // מקרה קיצון, צא מהפונקציה
 
            }
 
 
 
            return NewNode.GetNext(); // החזר את השרשרת החדשה
 
        }
 
 
 
        public static Node<int> RemoveByIndex(Node<int> chain, int index) // פונקציה שמסירה את איבר לפי אינדקס שמתקבל בפרמטר ברשימה מקושרת 
 
        {
 
            if (chain == null || index < 0) // אם הרשימה ריקה או שהאינדקס שלילי
 
            {
 
                return null; // מקרה קיצון, אין איבר להעיף
 
            }
 
 
 
            if (chain.GetNext() == null) // אם בשרשרת איבר יחיד
 
            {
 
                return null; // מקרה קיצון, אם בשרשרת יש רק איבר אחד ונסיר אותו לא תתקיים שרשרת
 
            }
 
 
 
            Node<int> prev = null; // מצביע על הצומת הקודם
 
            Node<int> current = chain; // משתנה עזר לשימירת הרשימה/השרשרת המקורית
 
            int currentIndex = 0; // מכיל את האינדקס הנוכחי שאנחנו נמצאים בו ברשימה
 
 
 
            while (current != null) // לולאה שרצה על כל האיברים
 
            {
 
                if (currentIndex == index) // אם מצאנו את האינדקס
 
                {
 
                    if (prev == null)  // אם האיבר להסרה הוא האיבר הראשון
 
                    {
 
                        chain = current.GetNext(); // עדכון הראש של הרשימה לאיבר הבא
 
                    }
 
 
 
                    else // אם האיבר להסרה הוא לא האיבר הראשון
 
                    {
 
                        prev.SetNext(current.GetNext()); // קישור האיבר הקודם לאיבר הבא של האיבר הנוכחי
 
                    }
 
 
 
                }
 
 
 
                prev = current; // האיבר הקודם עובר להיות האיבר הנוכחי
 
                current = current.GetNext(); // עבור לאיבר הבא
 
                currentIndex++; // עברנו האינדקס הנוכחי
 
            }
 
 
 
            if (currentIndex <= index) // אם הגענו לסוף הרשימה מבלי למצוא את האינדקס
 
            {
 
                Console.WriteLine($"Index {index} does not exist!"); // האינדקס לא קיים
 
                return null; // מקרה קיצון, צא מהפונקציה
 
            }
 
 
 
            return chain; // החזרת הרשימה החדשה
 
        }
 
 
 
        public static bool IsSortedAscending(Node<int> chain) // פונקציה שבודקת אם רשימה מקושרת ממוינת בסדר עולה
 
        {
 
            if (chain == null || chain.GetNext() == null) // בדוק אם השרשרת ריקה או שקיים רק איבר אחד
 
            {
 
                return false; // אין סדר עולה
 
            }
 
 
 
            Node<int> current = chain; // משתנה עזר לשימירת הרשימה/השרשרת המקורית
 
            while (current.GetNext() != null) // לולאה שעוברת על כל האיברים
 
            {
 
                if (current.GetValue() >= current.GetNext().GetValue()) // אם הערך הנוכחי גדול מהערך הבא
 
                {
 
                    return false; // הרשימה לא מסודרת
 
                }
 
 
 
                current = current.GetNext(); // עוברים לאיבר הבא
 
            }
 
 
 
            return true; // אם עברנו את כל הבדיקות, הרשימה מסודרת בסדר עולה
 
        }
 
 
 
        public static bool IsSortedDescending(Node<int> chain) // פונקציה שבודקת אם רשימה מקושרת ממוינת בסדר יורד
 
        {
 
            if (chain == null || chain.GetNext() == null) // בדוק אם השרשרת ריקה או שקיים רק איבר אחד
 
            {
 
                return false; // אין סדר עולה
 
            }
 
 
 
            Node<int> current = chain; // משתנה עזר לשימירת הרשימה/השרשרת המקורית
 
            while (current.GetNext() != null) // לולאה שעוברת על כל האיברים ברשימה עד הסוף
 
            {
 
                if (current.GetValue() <= current.GetNext().GetValue()) // אם הערך הנוכחי קטן או שווה לערך הבא
 
                {
 
                    return false; // הרשימה לא בסדר יורד
 
                }
 
 
 
                current = current.GetNext(); // עבור לאיבר הבא ברשימה
 
            }
 
 
 
            return true; // אם עברנו את כל הבדיקות, הרשימה מסודרת בסדר יורד
 
        }
 
 
 
        public static double Average(Node<int> chain) // פונקציה שמדפיסה את ממוצע ערך האיברים ברשימה מקושרת  
 
        {
 
            if (chain == null) // אם השרשרת ריקה
 
            {
 
                return 0; // ממוצע אפס
 
            }
 
 
 
            int sum = 0; // משתנה לשמירת סכום כל הערכים ברשימה
 
            int count = 0; // משתנה לספירת מספר האיברים ברשימה
 
            Node<int> current = chain; // משתנה עזר לשימירת הרשימה/השרשרת המקורית 
 
 
 
            while (current != null) // לולאה שעוברת על כל האיברים ברשימה עד שהיא מגיעה לסוף
 
            {
 
                sum += current.GetValue(); // מוסיף את הערך של האיבר הנוכחי לסכום
 
                count++; // מגדיל את ספירת האיברים
 
                current = current.GetNext(); // מעביר את המצביע לאיבר הבא ברשימה
 
            }
 
 
 
            return (double)sum / count; // החזר את הממוצע
 
        }
 
 
 
        public static Node<int> AddNodeStart(Node<int> chain, int data) // פונקציה שמוסיפה איבר בתחילת רשימה מקושרת   
 
        {
 
            // יצירת איבר חדש
 
            Node<int> newNode = new Node<int>(data);
 
 
 
            // הגדר את האיבר הבא לשרשרת המקורית 
 
            newNode.SetNext(chain);
 
 
 
            // החזר את הרשימה החדשה לאחר הוספת האיבר 
 
            return newNode;
 
        }
 
 
 
        public static void AddNodeEnd(Node<int> chain, int value) // פונקציה שמוסיפה איבר בסוף רשימה מקושרת  
 
        {
 
            // יצירת איבר חדש עם הערך שקיבלנו מהפרמטר
 
            Node<int> newNode = new Node<int>(value);
 
 
 
            // בדוק אם הרשימה ריקה. אם כן, אין איבר להוספה
 
            if (chain == null) return;
 
 
 
            else
 
            {
 
                Node<int> current = chain; // משתנה עזר לשימירת הרשימה/השרשרת המקורית 
 
 
 
                while (current.GetNext() != null) // לולאה שעוברת על כל האיברים ברשימה
 
                {
 
                    current = current.GetNext(); // עבור לאיבר הבא ברשימה
 
                }
 
 
 
                current.SetNext(newNode); // חיבור האיבר החדש לסוף הרשימה
 
            }
 
        }
 
 
 
        public static Node<int> AddNodeAtIndex(Node<int> chain, int index, int value) // פונקציה שמוסיפה איבר לפי אינדקס (שמתקבל בפרמטר) ברשימה מקושרת  
 
        {
 
            // יצירת איבר חדש עם הערך שקיבלנו מהפרמטר
 
            Node<int> newNode = new Node<int>(value);
 
 
 
            // בדוק אם הרשימה ריקה או אם האינדקס אינו תקין אם כן צא מהפונקציה
 
            if (chain == null || index < 0)
 
            {
 
                Console.WriteLine("Chain Is Empty Or Index Is");
 
                return null;
 
            }
 
 
 
            // אם האינדקס הוא 0, הוסף את האיבר החדש בתחילת הרשימה
 
            if (index == 0)
 
            {
 
                // הגדר את האיבר הבא לשרשרת המקורית 
 
                newNode.SetNext(chain);
 
 
 
                // החזר את הרשימה החדשה לאחר הוספת האיבר 
 
                return newNode;
 
            }
 
 
 
            // מציאת האיבר לפני המקום שבו רוצים להוסיף
 
            Node<int> current = chain;  // משתנה עזר לשימירת הרשימה/השרשרת המקורית 
 
            int currentIndex = 0; // משתנה לאחסון האינדקס הנוכחי
 
 
 
            while (current != null && currentIndex < index - 1) // לולאה לחיפוש האיבר המבוקש לפי האינדקס בפרמטר
 
            {
 
                current = current.GetNext(); // עבור לאיבר הבא
 
                currentIndex++; // עדכון האינדקס הנוכחי
 
            }
 
 
 
            // אם הגענו לסוף הרשימה, האינדקס לא קיים
 
            if (current == null)
 
            {
 
                Console.WriteLine("Nonexistent Index!"); // הדפסת הודעה מתאימה
 
                return null; // מקרה קיצון, יציאה מהפונקציה
 
            }
 
 
 
            // חיבור האיבר החדש לרשימה
 
            newNode.SetNext(current.GetNext()); // קישור האיבר החדש לאיבר הבא
 
            current.SetNext(newNode); // קישור האיבר הקודם לאיבר החדש
 
            return chain; // החזרת הראשימה החדשה
 
        }
 
 
 
        public static void FindAndPrintMiddle(Node<int> chain) // פונקציה שמוצאת את האיברים האמצעיים ברשימה מקושרת ומדפיסה אותם
 
        {
 
            if (chain == null) // אם השרשרת ריקה
 
            {
 
                Console.WriteLine("The List Is Empty."); // הודעה מתאימה
 
                return; // יציאה מהפונקציה
 
            }
 
 
 
            Node<int> slow = chain; // משתנה עזר ראשון שמצביע לאיבר הראשון ברשימה
 
            Node<int> fast = chain; // משתנה עזר שני שמצביע לאיבר הראשון ברשימה
 
            Node<int> prevSlow = null; // משתנה לאחסון האיבר הקודם של סלואו
 
 
 
            while (fast != null && fast.GetNext() != null) // לולאה שרצה על כל האיברים
 
            {
 
                prevSlow = slow; // עדכון האיבר הקודם להיות האיבר הנוכחי
 
                slow = slow.GetNext(); // האיבר הנוכחי הראשון עובר לאיבר הבא
 
                fast = fast.GetNext().GetNext(); // האיבר הנוכחי השני עובר שני איברים קדימה
 
            }
 
 
 
            if (fast == null) // מספר זוגי של איברים
 
            {
 
                Console.WriteLine($"The Middle Nodes: {prevSlow.GetValue()} and {slow.GetValue()}");
 
            }
 
 
 
            else // מספר אי זוגי של איברים
 
            {
 
                Console.WriteLine($"The Middle Node: {slow.GetValue()}");
 
            }
 
        }
 
 
 
        public static int GetValueByIndex(Node<int> chain, int index) // פונקציה  שעוברת על כל האיברים בשרשרת ומחזירה את הערך של האיבר כאשר היא מגיעה לאינדקס המבוקש
 
        {
 
            int currentIndex = 0; // מייצג את האינדקס הנוכחי בשרשרת
 
            Node<int> currentNode = chain; // משתנה עזר לשמירת האיבר הנוכחי
 
 
 
            // לולאה שרצה על האיברים כל עוד לא הגענו לסוף השרשרת
 
            while (currentNode != null)
 
            {
 
                // בודק אם הגענו לאינדקס המבוקש
 
                if (currentIndex == index)
 
                {
 
                    return currentNode.GetValue(); // מחזיר את הערך אם הגענו לאינדקס המבוקש
 
                }
 
 
 
                // מתקדם לאיבר הבא ומגדיל את האינדקס הנוכחי באחד
 
                currentNode = currentNode.GetNext();
 
                currentIndex++;
 
            }
 
 
 
            return -1; // מחזיר -1 אם לא נמצא האיבר באינדקס המבוקש
 
        }
 
 
 
        public static int GetIndexByValue(Node<int> chain, int value) // פונקציה לקבלת אינדקס בעזרת ערך מסוים ברשימה מקושרת
 
        {
 
            int currentIndex = 0; // משתנה לאחסון האינדקס הנוכחי
 
            Node<int> currentNode = chain; // מצביע לאיבר הנוכחי ברשימה
 
 
 
            while (currentNode != null) // לולאה שעוברת על כל האיברים ברשימה
 
            {
 
                if (currentNode.GetValue() == value) // בדיקה אם הערך של הנוד הנוכחי תואם לערך המבוקש
 
                {
 
                    return currentIndex; // מחזיר את האינדקס אם הערך נמצא
 
                }
 
 
 
                currentNode = currentNode.GetNext(); // מעבר לאיבר הבא הרשימה 
 
                currentIndex++; // הגדלת האינקס
 
            }
 
 
 
            return -1; // החזר -1 אם הערך לא נמצא
 
        }
 
 
 
        public static bool IsBalanced(Node<int> chain) // פונקציה שבודקת אם רשימה מקושרת היא גם "רשימה מאוזנת". רשימה מאוזנת היא רשימה שמספר האיברים הגדולים מהממוצע שווה למספר האיברים הקטנים מהממוצע.
 
        {
 
            // אם הרשימה ריקה, היא נחשבת מאוזנת
 
            if (chain == null) return true;
 
 
 
            int sum = 0; // משתנה לשמירת סכום הערכים
 
            int count = 0; // משתנה לספירת האיברים
 
 
 
            Node<int> current = chain;  // משתנה עזר לשימירת הרשימה/השרשרת המקורית 
 
 
 
            while (current != null) // לולאה שרצה על כל האיברים
 
            {
 
                sum += current.GetValue(); // הוספת הערך לסכום
 
                count++; // העלאת מונה האיברים
 
                current = current.GetNext(); // מעבר לאיבר הבא
 
            }
 
 
 
            // חישוב הממוצע
 
            double average = (double)sum / count;
 
 
 
            int greaterCount = 0; // משתנה לספירת איברים הגדולים מהממוצע
 
            int lesserCount = 0; // משתנה לספירת איברים הקטנים מהממוצע
 
 
 
            current = chain; // משתנה עזר לשימירת הרשימה/השרשרת המקורית 
 
 
 
            // ספירת האיברים הגדולים והקטנים מהממוצע
 
 
 
            while (current != null) // לולאה שעוברת על כל האיברים
 
            {
 
                if (current.GetValue() > average) // אם הערך גדול מהממוצע
 
                {
 
                    greaterCount++; // ספירת איבר גדול מהממוצע
 
                }
 
 
 
                else if (current.GetValue() < average) // אם הערך קטן מהממוצע
 
                {
 
                    lesserCount++; // ספירת איבר קטן מהממוצע
 
                }
 
                current = current.GetNext(); // מעבר לאיבר הבא ברשימה
 
            }
 
 
 
            return greaterCount == lesserCount; // החזרת התשובה האם הרשימה היא מאוזנת
 
        }
 
 
 
        public static int sequences(Node<int> chain, int num) // פונקציה שבודקת את מספר הרצפים שיש ברשימה מקושרת עבור מספר מסוים
 
        {
 
            int sequences = 0; // סוכם הרצפים
 
            Node<int> pos = chain; // משתנה עזר למיקום נוכחי ברשימה
 
            bool inSequence = false; // בדיקה אם הרצף ממשיך
 
            int count = 0; // מונה למופעים רצופים
 
 
 
            // לולאה שרצה כל עוד לא הגענו לסוף הרשימה
 
            while (pos != null)
 
            {
 
                // בודק אם הערך של הצומת הנוכחי שווה למספר שאנחנו מחפשים
 
                if (pos.GetValue() == num)
 
                {
 
                    count++; // מוסיף למונה
 
                    inSequence = true; // הרצף קיים
 
                }
 
 
 
                else
 
                {
 
                    if (inSequence && count >= 2) // אם סיימנו רצף עם 2 מופעים או יותר
 
                    {
 
                        sequences++; // מוסיפים לספירה
 
                    }
 
 
 
                    inSequence = false; // הרצף הפסיק
 
                    count = 0; // מאפס את המונה
 
                }
 
 
 
                // עובר לאיבר הבא ברשימה
 
                pos = pos.GetNext();
 
            }
 
 
 
            // בודק במקרה שהרצף נגמר בסוף הרשימה
 
            if (inSequence && count >= 2)
 
            {
 
                sequences++;
 
            }
 
 
 
            // מחזיר את מספר הרצפים של המספר המבוקש
 
            return sequences;
 
        }
 
 
 
        public static int FindMinValueIndex(Node<int> chain) // פונצקיה שמקבלת שרשרת ומחזירה את האינדקס של האינדקס של הערך הנמוך ביותר בשרשרת מקושרת
 
        {
 
            if (chain == null) // אם השרשרת ריקה
 
            {
 
                Console.WriteLine("The List Is Empty."); // הודעה מתאימה
 
                return -1; // יציאה מהפונקציה
 
            }
 
 
 
            Node<int> pos = chain; // משתנה עזר לשמירת השרשרת המקורית
 
            int minValue = pos.GetValue(); // אתחול הערך המינימלי לערך החוליה הראשונה
 
            int minIndex = 0; // אינדקס המינימום מתחיל מאפס
 
            int currentIndex = 0; // מונה אינדקס נוכחי
 
 
 
            // לולאה שעוברת על כל החוליות ברשימה
 
            while (pos != null)
 
            {
 
                if (pos.GetValue() < minValue) // עם הערך הנוכחי קטן מהערך המינימלי הקודם
 
                {
 
                    minValue = pos.GetValue(); // עדכון הערך המינימלי
 
                    minIndex = currentIndex; // עדכון האינדקס למיקום הנמוך ביותר
 
                }
 
 
 
                pos = pos.GetNext(); // מעבר לחוליה הבאה
 
                currentIndex++; // עדכון האינדקס הנוכחי
 
            }
 
 
 
            return minIndex; // החזרת האינדקס של הערך הנמוך ביותר
 
        }
 
 
 
        public static int FindMaxValueIndex(Node<int> chain) // פונקציה שמקבלת שרשרת ומחזירה את האינדקס של הערך הגבוה ביותר בשרשרת המקושרת
 
        {
 
            if (chain == null) // אם השרשרת ריקה
 
            {
 
                Console.WriteLine("The List Is Empty."); // הודעה מתאימה
 
                return -1; // החזרת -1 במקרה של שרשרת ריקה
 
            }
 
 
 
            Node<int> pos = chain; // משתנה עזר לשמירת השרשרת המקורית
 
            int maxValue = pos.GetValue(); // אתחול הערך המקסימלי לערך של החוליה הראשונה
 
            int maxIndex = 0; // אינדקס המקסימום מתחיל מאפס
 
            int currentIndex = 0; // מונה אינדקס נוכחי
 
 
 
            // לולאה שעוברת על כל החוליות ברשימה
 
            while (pos != null)
 
            {
 
                if (pos.GetValue() > maxValue) // אם הערך הנוכחי גדול מהערך המקסימלי הקודם
 
                {
 
                    maxValue = pos.GetValue(); // עדכון הערך המקסימלי
 
                    maxIndex = currentIndex; // עדכון האינדקס למיקום הגבוה ביותר
 
                }
 
 
 
                pos = pos.GetNext(); // מעבר לחוליה הבאה
 
                currentIndex++; // עדכון האינדקס הנוכחי
 
            }
 
 
 
            return maxIndex; // החזרת האינדקס של הערך הגבוה ביותר
 
        }
 
 
 
        public static List<int> FindMinValueIndexes(Node<int> chain) // פונקציה שמקבלת שרשרת ומחזירה את האינדקס/ים עם הערך/ים הכי נמוך/ים
 
        {
 
            if (chain == null) // אם הרשימה ריקה
 
            {
 
                Console.WriteLine("The List Is Empty."); // הודעה מתאימה
 
                return null; // מקרה קיצון, יציאה מהפונקציה
 
            }
 
 
 
            Node<int> pos = chain; // משתנה עזר שמחזיק את השרשרת המקורית
 
            int minValue = pos.GetValue(); // אתחול ערך מינימלי עם הערך של האיבר הראשון
 
            List<int> minIndexes = new List<int>(); // רשימה להחזיק את האינדקסים של הערך/ים המינימלי/ם
 
            int currentIndex = 0; // מונה אינדקסים נוכחי
 
 
 
            // לולאה שעוברת על כל הצמתים ברשימה
 
            while (pos != null)
 
            {
 
                if (pos.GetValue() < minValue) // אם הערך הנוכחי קטן מהערך המינימלי הקודם
 
                {
 
                    minValue = pos.GetValue(); // עדכון הערך המינימלי
 
                    minIndexes.Clear(); // ניקוי אינדקסים קודמים
 
                    minIndexes.Add(currentIndex); // הוספת האינדקס המינימלי החדש
 
                }
 
 
 
                else if (pos.GetValue() == minValue) // אם הערך הנוכחי שווה לערך המינימלי הנוכחי
 
                {
 
                    minIndexes.Add(currentIndex); // הוספת אינדקס זה לרשימת האינדקסים המינימליים
 
                }
 
 
 
                pos = pos.GetNext(); // // מעבר לאיבר הבא
 
                currentIndex++; // עדכון האינדקס הנוכחי
 
            }
 
 
 
            return minIndexes; // החזרת האינדקסים של הערכים המינימלים
 
        }
 
 
 
        public static List<int> FindMaxValueIndexes(Node<int> chain) // פונקציה שמקבלת שרשרת ומחזירה את האינדקסים עם הערך/ים הכי גבוה/ים בשרשרת מקושרת
 
        {
 
            if (chain == null) // אם הרשימה ריקה
 
            {
 
                Console.WriteLine("The List Is Empty."); // הודעה מתאימה
 
                return null; // מקרה קיצון, יציאה מהפונקציה
 
            }
 
 
 
            Node<int> pos = chain; // משתנה עזר לשמירת השרשרת המקורית
 
            int maxValue = pos.GetValue(); // אתחול ערך מקסימלי עם הערך של האיבר הראשון
 
            List<int> maxIndexes = new List<int>(); // רשימה להחזיק את האינדקסים של הערך/ים המקסימלי/ם
 
            int currentIndex = 0; // מונה אינדקסים נוכחי
 
 
 
            // לולאה שעוברת על כל הצמתים ברשימה
 
            while (pos != null)
 
            {
 
                if (pos.GetValue() > maxValue) // אם הערך הנוכחי גדול מהערך המקסימלי הקודם
 
                {
 
                    maxValue = pos.GetValue(); // עדכון הערך המקסימלי
 
                    maxIndexes.Clear(); // ניקוי אינדקסים קודמים
 
                    maxIndexes.Add(currentIndex); // הוספת האינדקס המקסימלי החדש
 
                }
 
                else if (pos.GetValue() == maxValue) // אם הערך הנוכחי שווה לערך המקסימלי הנוכחי
 
                {
 
                    maxIndexes.Add(currentIndex); // הוספת אינדקס זה לרשימת האינדקסים המקסימליים
 
                }
 
 
 
                pos = pos.GetNext(); // מעבר לאיבר הבא
 
                currentIndex++; // עדכון האינדקס הנוכחי
 
            }
 
 
 
            return maxIndexes; // החזרת האינדקסים של הערכים המקסימליים
 
        }
 
 
 
        public static List<int> FindSecondMaxValueIndex(Node<int> chain) // פונקציה שמקבלת שרשרת 
 
        {
 
            if (chain == null) return new List<int>(); // אם הרשימה ריקה, מחזירים רשימה ריקה
 
 
 
            int max = int.MinValue;
 
            int secondMax = int.MinValue;
 
            List<int> secondMaxIndexes = new List<int>();
 
            int index = 0;
 
 
 
            // סיבוב על כל האלמנטים בשרשרת
 
            for (Node<int> current = chain; current != null; current = current.GetNext())
 
            {
 
                // מעדכנים את הערכים המקסימליים
 
                if (current.GetValue() > max)
 
                {
 
                    secondMax = max; // הערך הקודם הופך לערך השני הכי גבוה
 
                    max = current.GetValue(); // מעדכנים את הערך המקסימלי
 
                }
 
 
 
                else if (current.GetValue() > secondMax && current.GetValue() < max)
 
                {
 
                    secondMax = current.GetValue(); // מעדכנים את הערך השני הכי גבוה
 
                }
 
 
 
                index++;
 
            }
 
 
 
            // מחפשים את כל האינדקסים של הערך השני הכי גבוה
 
            index = 0; // מאפסים את האינדקס
 
 
 
            for (Node<int> current = chain; current != null; current = current.GetNext())
 
            {
 
                if (current.GetValue() == secondMax)
 
                {
 
                    secondMaxIndexes.Add(index); // מוסיפים את האינדקס לרשימה
 
                }
 
 
 
                index++;
 
            }
 
 
 
            return secondMaxIndexes; // מחזירים את הרשימה של אינדקסים
 
        }
 
 
 
        public static List<int> FindSecondMinValueIndex(Node<int> chain) // פונקציה שמקבלת שרשרת
 
        {
 
            if (chain == null) return new List<int>(); // אם הרשימה ריקה, מחזירים רשימה ריקה
 
 
 
            int min = int.MaxValue;
 
            int secondMin = int.MaxValue;
 
            List<int> secondMinIndexes = new List<int>();
 
            int index = 0;
 
 
 
            // סיבוב על כל האלמנטים בשרשרת
 
            for (Node<int> current = chain; current != null; current = current.GetNext())
 
            {
 
                // מעדכנים את הערכים המינימליים
 
                if (current.GetValue() < min)
 
                {
 
                    secondMin = min; // הערך הקודם הופך לערך השני הכי נמוך
 
                    min = current.GetValue(); // מעדכנים את הערך המינימלי
 
                }
 
                else if (current.GetValue() < secondMin && current.GetValue() > min)
 
                {
 
                    secondMin = current.GetValue(); // מעדכנים את הערך השני הכי נמוך
 
                }
 
 
 
                index++;
 
            }
 
 
 
            // מחפשים את כל האינדקסים של הערך השני הכי נמוך
 
            index = 0; // מאפסים את האינדקס
 
 
 
            for (Node<int> current = chain; current != null; current = current.GetNext())
 
            {
 
                if (current.GetValue() == secondMin)
 
                {
 
                    secondMinIndexes.Add(index); // מוסיפים את האינדקס לרשימה
 
                }
 
 
 
                index++;
 
            }
 
 
 
            return secondMinIndexes; // מחזירים את הרשימה של אינדקסים
 
        }
 
 
 
        public static bool IsPalindrome(Node<int> chain) // פונקציה שבודקת אם רשימה מקושרת היא פלינדרום
 
        {
 
            // אם הרשימה ריקה או כוללת איבר אחד, היא נחשבת פלינדרום
 
            if (chain == null || chain.GetNext() == null) return true;
 
 
 
            // שלב 1: העתקת הערכים לרשימה כדי שניתן יהיה לקרוא אחורה
 
            List<int> values = new List<int>();
 
            Node<int> current = chain; // משתנה עזר לשמירת השרשרת המקורית
 
 
 
            while (current != null) // לולאה שעוברת על כל האיברים ומוסיפה אותם לרשימה
 
            {
 
                values.Add(current.GetValue());
 
                current = current.GetNext();
 
            }
 
 
 
            // שלב 2: בדיקת סימטריה
 
            int left = 0; // התחלה של הרשימה
 
            int right = values.Count - 1; // סוף של הרשימה
 
 
 
            while (left < right) // לולאה שממשיכה כל עוד יש איברים משני הצדדים
 
            {
 
                if (values[left] != values[right]) // אם הערכים אינם שווים
 
                {
 
                    return false; // השרשרת אינה פלינדרום
 
                }
 
                left++;
 
                right--;
 
            }
 
 
 
            return true; // אם כל הערכים היו שווים, הרשימה היא פלינדרום
 
        }
 
 
 
    }
 
}
const Button = styled.button`
  background: red;
  border-radius: 3px;
  border: 2px solid #BF4F74;
  color: #BF4F74;
  margin: 0 1em;
  padding: 0.25em 1em;
`
class livre{
    private String titre;
    private String auteur;
    private int nbp;
    private float prix;
  
    livre(String titre,String auteur,int nbp,float prix){
        this.titre=titre;
        this.auteur=auteur;
        this.nbp=nbp;
        this.prix=prix;
    }
    String getTitre(){
        return this.titre;
    }
    String getAuteur(){
        return this.auteur;
    }
    int getNbp(){
        return this.nbp;
    }
    float getPrix(){
        return this.prix;
    }
    void setTitre(String titre){
        this.titre=titre;
    }
    void setAuteur(String auteur){
        this.auteur=auteur;
    }
    void setNbp(int nbp){
        this.nbp=nbp;
    }
    void setPrix(float prix){
        this.prix=prix;
    }
    public String toString() {
        return "Livre{" +
                "titre='" + titre + '\'' +
                ", auteur='" + auteur + '\'' +
                ", nombrePages=" + nbp +
                ", prix=" + prix +
                '}';
    }
    public boolean equals(Object obj) {
    if (this == obj) {
        return true;
    }

    if (obj == null || getClass() != obj.getClass()) {
        return false;
    }

    livre autre = (livre) obj;

    return this.titre.equals(autre.getTitre())
        && this.auteur.equals(autre.getAuteur());
      
      
}}
class etagere{
    private livre [] tab;
    private int nblivre;
    etagere(int n){
        this.tab=new livre[n];
        this.nblivre=0;
    }
    int getNbmax(){
        return tab.length;
    }
    int getNblivre(){
        return this.nblivre;
    }
    
   boolean ajouter(livre l){
       if(nblivre<tab.length){
           tab[nblivre]=l;
           nblivre++;
           return true;
       }
       return false;
   }
   livre getLivre(int p){
       if(p>0 && p<=nblivre){
           return tab[p-1];
       }
        return null;
       }
    int cher(String ti,String au){
        int nb=0;
        for(int i=0;i<nblivre;i++){
            if(tab[i].getTitre().equals(ti) && tab[i].getAuteur().equals(au)){
                return i+1;
            }
        }
        return 0;
    }
 int [] cherch(String ti,String au){
     int x=0,x1=0;
      for(int i=0;i<nblivre;i++){
            if(tab[i].getTitre().equals(ti) && tab[i].getAuteur().equals(au)){
                x++;
            }}
            int []t=new int[x];
             for(int i=0;i<nblivre;i++){
            if(tab[i].getTitre().equals(ti) && tab[i].getAuteur().equals(au)){
                t[x1]=i+1;
                x1++;}}
        return t;
 }
        
 
 

void affiche() {
        System.out.println("Livres sur l'etagere :");
        for (int i = 0; i < nblivre; i++) {
            System.out.println((i + 1) + ". " + tab[i]);
        }
    }

}
public class Main{
    public static void main(String [] args){
        livre l1=new livre("koukou","ahmed",250,3500);
        livre l2=new livre("boubou","iyed",630,7800);
        livre l3=new livre("kouk","wael",852,6988);
        livre l4=new livre("boubou","iyed",630,7800);
        System.out.println(l1.toString());
        System.out.println(l2.toString());
        etagere e1=new etagere(5);
        e1.ajouter(l1);
        e1.ajouter(l2);
        e1.ajouter(l3);
        e1.ajouter(l4);
        e1.affiche(); 
        int[] position = e1.cherch("boubou", "iyed");
        if (position.length > 0) {
            System.out.println("Positions des livres trouves");
           for (int i = 0; i < position.length; i++) {
        System.out.println(position[i]);
    }
} else {
    System.out.println("Aucun livre trouvé avec ce titre et cet auteur.");
        
        } }}
        
        
        
        
        
        
        
        
        
        
        
        
        
        
package oddevenprime;

import java.util.Scanner;
public class OddEvenPrime {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
       Scanner input = new Scanner(System.in);
        System.out.print("Enter starting number: ");
        int start = input.nextInt();
        System.out.print("Enter ending number: ");
        int end = input.nextInt();

        for (int num = start; num <= end; num++) {
            if (num % 2 == 0) {
                System.out.println(num + " is even");
            } else {
                System.out.println(num + " is odd");
            }

            boolean isPrime = true;
            for (int i = 2; i <= Math.sqrt(num); i++) {
                if (num % i == 0) {
                    isPrime = false;
                    break;
                }
            }

            if (isPrime && num > 1) {
                System.out.println(num + " is prime");
            }
        }
    }
}
package fibonacciseries;
import java.util.Scanner;
public class FibonacciSeries {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
              Scanner input = new Scanner(System.in);
        System.out.print("Enter the size of the series: ");
        int size = input.nextInt();

        int first = 0, second = 1, next;

        System.out.print(first + " " + second + " ");

        for (int i = 3; i <= size; i++) {
            next = first + second;
            System.out.print(next + " ");
            first = second;
            second = next;
        }
    }
}
package passedfailedgrades;
import java.util.Scanner;
public class PassedFailedGrades {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int passedCount = 0, failedCount = 0;

        for (int i = 1; i <= 10; i++) {
            System.out.print("Enter grade " + i + ": ");
            int grade = input.nextInt();

            if (grade >= 75) {
                passedCount++;
            } else {
                failedCount++;
            }
        }

        System.out.println("Passed: " + passedCount);
        System.out.println("Failed: " + failedCount);
    }
}
package positivenegativecount;
import java.util.Scanner;
public class PositiveNegativeCount {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
                Scanner input = new Scanner(System.in);
        int positiveCount = 0, negativeCount = 0;

        for (int i = 1; i <= 5; i++) {
            System.out.print("Enter number " + i + ": ");
            int num = input.nextInt();

            if (num > 0) {
                positiveCount++;
            } else if (num < 0) {
                negativeCount++;
            }
        }

        System.out.println("Positive: " + positiveCount);
        System.out.println("Negative: " + negativeCount);
    }
}
        Scanner input = new Scanner(System.in);
        int positiveCount = 0, negativeCount = 0;

        for (int i = 1; i <= 5; i++) {
            System.out.print("Enter number " + i + ": ");
            int num = input.nextInt();

            if (num > 0) {
                positiveCount++;
            } else if (num < 0) {
                negativeCount++;
            }
        }

        System.out.println("Positive: " + positiveCount);
        System.out.println("Negative: " + negativeCount);
    }
}
package sumofsquares;

import java.util.Scanner;
public class SumOfSquares {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("Enter a number: ");
        int n = input.nextInt();

        int sum = 0;
        for (int i = 1; i <= n; i++) {
            sum += i * i;
        }

        System.out.println("Sum of squares: " + sum);
    }
}
package rangecounter;

import java.util.Scanner;
public class RangeCounter {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
               Scanner input = new Scanner(System.in);
        int count1 = 0, count2 = 0, count3 = 0, count4 = 0;

        for (int i = 1; i <= 20; i++) {
            System.out.print("Enter number " + i + ": ");
            int num = input.nextInt();

            if (num >= 1 && num <= 50) {
                count1++;
            } else if (num >= 51 && num <= 100) {
                count2++;
            } else if (num >= 101 && num <= 150) {
                count3++;
            } else if (num >= 151 && num <= 200) {
                count4++;
            }
        }

        System.out.println("Number of values in range 1-50: " + count1);
        System.out.println("Number of values in range 51-100: " + count2);
        System.out.println("Number of values in range 101-150: " + count3);
        System.out.println("Number of values in range 151-200: " + count4);
    }
}

package sumsandaverage;
import java.util.Scanner;

public class SumsAndAverage {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
             Scanner input = new Scanner(System.in);
        System.out.print("Enter a number: ");
        int n = input.nextInt();

        int sum = 0;
        for (int i = 1; i <= n; i++) {
            System.out.print(i + " ");
            sum += i;
        }

        double average = (double) sum / n;

        System.out.println("\nSum: " + sum);
        System.out.println("Average: " + average);
    }
}
package displaynumbers;

import java.util.Scanner;
public class DisplayNumbers {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
         Scanner input = new Scanner(System.in);
        System.out.print("Enter a number: ");
        int n = input.nextInt();

        // Using a for loop
        for (int i = 1; i <= n; i++) {
            System.out.print(i + " ");
        }

        // Using a while loop
        int i = 1;
        while (i <= n) {
            System.out.print(i + " ");
            i++;
        }

        // Using a do-while loop
        i = 1;
        do {
            System.out.print(i + " ");
            i++;
        } while (i <= n);

        System.out.println();
    }
}
package circlearea;

/**
 *
 * @author Almer
 */
public class CircleArea {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        double pi = Math.PI;
        for (int r = 1; r <= 5; r++) {
            double area = pi * r * r;
            System.out.println("Radius: " + r + ", Area: " + area);
        }
    }
}
package countstoten;

/**
 *
 * @author Almer
 */
public class CountsToTen {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
               for (int i = 1; i <= 10; i++) {
            System.out.println(i);
        }
    }
}
package employeessalary;
import java.util.Scanner;
public class EmployeesSalary {

    
    public static void main(String[] args) {
             Scanner input = new Scanner(System.in);

        System.out.print("Enter the employee category (c/p/r): ");
        char category = input.next().charAt(0);

        System.out.print("Enter number of days worked: ");
        int daysWorked = input.nextInt();

        double dailyRate;
        String categoryName;

        switch (category) {
            case 'c':
                dailyRate = 350;
                categoryName = "Contractual";
                break;
            case 'p':
                dailyRate = 400;
                categoryName = "Probationary";
                break;
            case 'r':
                dailyRate = 450;
                categoryName = "Regular";
                break;
            default:
                dailyRate = 0;
                categoryName = "Invalid Input";
        }

        double basicPay = dailyRate * daysWorked;

        System.out.println("Category: " + categoryName);
        System.out.println("Daily Rate: " + dailyRate);
        System.out.println("Basic Pay: " + basicPay);
    }
}
package studentgrade;

import java.util.Scanner;
public class StudentGrade {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
            Scanner input = new Scanner(System.in);

        System.out.print("Enter Prelim Grade: ");
        double prelim = input.nextDouble();

        System.out.print("Enter Midterm Grade: ");
        double midterm = input.nextDouble();

        System.out.print("Enter Final Grade: ");
        double finalGrade = input.nextDouble();

        double subjectGrade = (prelim + midterm + (finalGrade * 2)) / 4;

        String gradeEquivalent;
        if (subjectGrade >= 96) {
            gradeEquivalent = "1.00";
        } else if (subjectGrade >= 94) {
            gradeEquivalent = "1.25";
        } else if (subjectGrade >= 92) {
            gradeEquivalent = "1.50";
        } else if (subjectGrade >= 89) {
            gradeEquivalent = "1.75";
        } else if (subjectGrade >= 87) {
            gradeEquivalent = "2.00";
        } else if (subjectGrade >= 84) {
            gradeEquivalent = "2.25";
        } else if (subjectGrade >= 80) {
            gradeEquivalent = "2.50";
        } else if (subjectGrade >= 78) {
            gradeEquivalent = "2.75";
        } else if (subjectGrade >= 75) {
            gradeEquivalent = "3.00";
        } else {
            gradeEquivalent = "5.00";
        }

        System.out.println("Subject Grade: " + subjectGrade);
        System.out.println("Grade Equivalent: " + gradeEquivalent);
    }
}
package gendergreeting;
import java.util.Scanner;
public class GenderGreeting {

    public static void main(String[] args) {
                Scanner input = new Scanner(System.in);

        System.out.print("Enter your gender (m/f): ");
        char gender = input.next().charAt(0);

        if (gender == 'm' || gender == 'M') {
            System.out.println("Hello Sir");
        } else if (gender == 'f' || gender == 'F') {
            System.out.println("Hello Madam");
        } else {
            System.out.println("Invalid input");
        }
    }
}
package yearendbonus;

import java.util.Scanner;
public class YearEndBonus {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
         Scanner input = new Scanner(System.in);

        System.out.print("Enter the employee's name: ");
        String name = input.nextLine();

        System.out.print("Enter the employee's monthly salary: ");
        double salary = input.nextDouble();

        double bonus;
        if (salary < 2000) {
            bonus = salary * 0.5;
        } else {
            bonus = 1500;
        }

        System.out.println(name + "'s bonus is: " + bonus);
    }
}
package employeesalary;
import java.util.Scanner;
public class EmployeeSalary {

   
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        System.out.print("Enter the number of hours worked: ");
        int hoursWorked = input.nextInt();

        double salary = 0;
        if (hoursWorked <= 40) {
            salary = hoursWorked * 50;
        } else {
            salary = 40 * 50 + (hoursWorked - 40) * 30;
        }

        System.out.println("The salary is: " + salary);
    }
}
  
package gradeincrease;

import java.util.Scanner;
public class GradeIncrease {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        System.out.print("Enter the original grade: ");
        double originalGrade = input.nextDouble();

        double newGrade = originalGrade;
        if (originalGrade < 90) {
            newGrade += 5;
        }

        System.out.println("The new grade is: " + newGrade);
    }
}
//Increase the Modal Height

.uiModal flowruntime-flow {
    max-height: 100% !important;
}
 
//Set the Modal Width

.uiModal--medium .modal-container {
    max-width: 400px !important;
}
 

//Hide the Close Button

button.slds-modal__close.closeIcon {
    display: none;
}
 
//Increase the Text Area Fields' Height

textarea {
    min-height: 300px !important;
}
 

//
//Change the Color of Text Area Fields

textarea {
    color: green !important;
    font-weight: 800;
    min-height: 200px !important;
}

//Change the Navigation Bar's Color

.uiModal flowruntime-navigation-bar {
    background-color: lightblue !important;
    border-width: 0 !important;
}

//Add a Background Image

.uiModal flowruntime-flow {
    background-image: url("https://salesforcetime.com/wp-content/uploads/2021/04/sfba3.jpg") !important;
    background-repeat: no-repeat !important;
    background-position: center;
    background-size: cover;
}

.slds-modal__header {
    margin-bottom: 0 !important;
}

//Remove the Borders of the Flow

article.flowRuntimeForFlexipage {
 border: none;
}

//Change the Height of a Data Table

flowruntime-datatable .restrict-scroll {
    max-height: 200px !important;
}
// Previous Way
function getListData(data) {
  const items = [];
  if (!data) return [];
  for (const [index, item] of Object.entries(data)) {
    const name = item.name;
    const category = item.category;
    const web = item.website;

    const obj = {
      name,
      category,
      web,
    };

    items.push(obj);
  }
  return items;
}





// Cleaner Solution - new way

  function getListData(data) {
    if (!data) return [];
    return Object.entries(data).map(([index, item]) => ({
      name: item.name,
      category: item.category,
      web: item.website,
    }));
  }


const getData = getListData(dummyData)
// Author : Khadiza Sultana
#include<iostream>
#include<vector>
using namespace std;
int LinearSearch(vector<int> &vec, int target){
    int i = 0;
    for(int val : vec){
        if(val == target)
           return i;
        i++;
    }
    return -1;
}
int main(){
    vector<int> vec = {1, 2, 5, 8, 5, 7, 8};
    int target = 7;
    cout << LinearSearch(vec, target) << endl;
    return 0;
}
import mongoose from "mongoose";

const userSchema = new mongoose.Schema(
  {},
  { timestamps: true }
);

export const User = mongoose.model("User", userSchema);
const mongoose = require('mongoose');

const userSchema = new mongoose.Schema(
  {
    name: { type: String, required: true },
    email: { type: String, required: true, unique: true },
    password: { type: String, required: true },
    age: { type: Number, min: 18 },
  },
  { timestamps: true } 
);

const User = mongoose.model('User', userSchema);

module.exports = User;
package prisontest;

/**
 *
 * @author Almer
 */
public class Prisontest {
    
        public static void main(String[] args){
        cell cellA1 = new cell("A1", false, 1234);
        prisoner bubba = new prisoner("Bubba", 2.08, 4, cellA1);
        
        bubba.display();
        cellA1.setIsOpen(1111);
        cellA1.setIsOpen(1234);
        cellA1.setIsOpen(1234);
    }
}
package prisontest;

/**
 *
 * @author Almer
 */
public class prisoner {
    
    private String name;
    private double height;
    private int sentence;
    private cell cell;
    
    //Constructor
    public prisoner(String name, double height, int sentence, cell cell){
 	this.name = name;
 	this.height = height;
 	this.sentence = sentence;
        this.cell = cell;
    }
    
    //Methods
    public void think(){
        System.out.println("I'll have my revenge.");
    }
    public void display(){
        System.out.println("Name: " +getName());
        System.out.println("Height: " +getHeight());
        System.out.println("Sentence: " +getSentence());
        System.out.println("Cell: " +getCell().getName());
    }

    public String getName() {
        return name;
    }
    public double getHeight() {
        return height;
    }
    public int getSentence() {
        return sentence;
    }
    public cell getCell() {
        return cell;
    }
    //Setters
    public void setName(String name) {
        this.name = name;
    }
    public void setHeight(double height) {
        this.height = height;
    }
    public void setSentence(int sentence) {
        this.sentence = sentence;
    }
    public void setCell(cell cell) {
        this.cell = cell;
    }
}

package prisontest;


public class cell {
    private String name;
    private boolean isOpen;
    private int securityCode;
    
    public cell(String name, boolean isOpen, int securityCode){
        this.name = name;
        this.isOpen = isOpen;
        this.securityCode = securityCode;
    }
    
    public String getName(){
        return name;
    }
    public boolean getIsOpen(){
        return isOpen;
    }
    
    public void setIsOpen(int code){
        if(code != securityCode){
            System.out.println("Incorrect code");
        }
        else{
            if(isOpen == true){
                isOpen = false;
                System.out.println("Cell " +name +" Closed");
            }
            else{
                isOpen = true;
                System.out.println("Cell " +name +" Open");
            }
        }
    }
}

#include <iostream>
#include <fstream>
#include <string>
#include <memory>

struct Node {
    std::string line;
    int number;
    std::shared_ptr<Node> next;
    
    Node(std::string l = "", int n = 0) : line(l), number(n), next(nullptr) {}
};

void read(std::shared_ptr<Node>& root) {
    std::ifstream reader("read.txt");  // cin
    if (reader.is_open() && !reader.eof()) {
        root = std::make_shared<Node>();
        reader >> root->line >> root->number;  
        auto tmp = root;
        
        while(!reader.eof()) {
            tmp->next = std::make_shared<Node>();
            tmp = tmp->next;
            reader >> tmp->line >> tmp->number;
        }
    }
}

void type(std::shared_ptr<Node> root) {
    auto tmp = root;
    while (tmp) {
        std::cout << tmp->line << " " << tmp->number << std::endl;
        tmp = tmp->next;
    }
}

void remove(std::shared_ptr<Node>& root, int const number) {
    
    // for first root
    if (root->number == number) {
        root = root->next;
        return;
    }

    auto tmp = root;
    while (tmp->next && tmp->next->number != number) {
        tmp = tmp->next;
    }

    if (tmp->next) {
        tmp->next = tmp->next->next;
    } else {
        std::cout << "we didn' find this element" << std::endl;
    }
}

void insert(std::shared_ptr<Node>& root, int pos, const std::string& str, int val) {
    if (pos == 0) {
        std::shared_ptr<Node> new_root = std::make_shared<Node>(str, val);
        new_root->next = root;
        root = new_root;
        return;
    }

    auto tmp = root;
    for (int i = 1; tmp && i < pos; ++i) {
        tmp = tmp->next;
    }

    if (tmp) {
        std::shared_ptr<Node> new_node = std::make_shared<Node>(str, val);
        new_node->next = tmp->next;
        tmp->next = new_node;
    } 
}

int main() {
    std::shared_ptr<Node> root;
    
    read(root);
    
    std::cout << "list:" << std::endl;
    type(root);
    
    insert(root, 0, "New first line", 10);
    std::cout << "\nuse insert to put new element to the first root:" << std::endl;
    type(root);

    insert(root, 2, "newline", 20);
    std::cout << "\njust use void insert:" << std::endl;
    type(root);
    
    remove(root, 10);
    std::cout << "\n delete root with value = 10:" << std::endl;
    type(root);


    return 0;
}
1. Purga la instalación de Docker:
sudo apk del docker

2. Instalar o reinstalar Docker:
sudo apk add docker

3. Solucionar problemas:
Para desmascarar los servicios de Docker:

sudo rc-update add docker default
sudo service docker start

4. Iniciar Docker:

sudo service docker start

5. Probar la instalación de Docker:
sudo docker run hello-world

6. Reiniciar Docker:

sudo service docker restart

7. Parar Docker:
sudo service docker stop

7.1 ver el estado de docker:
sudo service docker status

8. Comprobar el estado de Docker:
sudo service docker status

9. Ver imágenes de Docker:
docker images

10. Agregar usuario al grupo "docker":
Esto te permite ejecutar comandos de Docker sin sudo:
sudo addgroup $USER docker && newgrp docker

Otros Comandos Útiles
Listar contextos de Docker:
docker context ls 

Usar el contexto por defecto:
docker context use default 

Establecer el host de Docker:
export DOCKER_HOST="tcp://0.0.0.0:2375"

Detener todos los recursos pendientes (imágenes, contenedores, volúmenes y redes):
docker system prune

detener un contenedor de docker
docker stop <container_ID>
  
luego de detenerlo ejecuta este para eliminarlo
docker rm <container_ID>

Eliminar contenedores detenidos y todas las imágenes no utilizadas:
docker system prune -a

Eliminar imágenes por nombre (asegúrate de tener permisos adecuados):
sudo docker rmi <image_name>

sudo docker rmi -f <image_name:latest>
  
  Enumerar imágenes pendientes es decir que esten siendo usadas por otro contenedor:
docker images -f dangling=true

Eliminar imágenes pendientes:
docker rmi $(docker images -f "dangling=true" -q)
star

Mon Dec 09 2024 18:40:56 GMT+0000 (Coordinated Universal Time)

@WXCanada

star

Mon Dec 09 2024 15:26:13 GMT+0000 (Coordinated Universal Time)

@jrg_300i #undefined

star

Mon Dec 09 2024 14:04:17 GMT+0000 (Coordinated Universal Time)

@saharmess #mysql

star

Mon Dec 09 2024 12:29:19 GMT+0000 (Coordinated Universal Time) https://appticz.com/ubereats-clone

@aditi_sharma_

star

Mon Dec 09 2024 10:21:49 GMT+0000 (Coordinated Universal Time) https://www.coinsclone.com/cost-to-create-multi-chain-nft-marketplace-like-opensea-rarible/

@Emmawoods #webassembly #php #javascript #nft

star

Mon Dec 09 2024 10:03:22 GMT+0000 (Coordinated Universal Time)

@Taimoor

star

Mon Dec 09 2024 09:44:46 GMT+0000 (Coordinated Universal Time)

@Taimoor

star

Mon Dec 09 2024 09:44:07 GMT+0000 (Coordinated Universal Time)

@Taimoor

star

Mon Dec 09 2024 09:06:04 GMT+0000 (Coordinated Universal Time) https://lmarena.ai/

@admino

star

Mon Dec 09 2024 09:02:26 GMT+0000 (Coordinated Universal Time)

@iliavial

star

Mon Dec 09 2024 09:00:09 GMT+0000 (Coordinated Universal Time)

@iliavial

star

Mon Dec 09 2024 08:59:33 GMT+0000 (Coordinated Universal Time)

@iliavial

star

Mon Dec 09 2024 08:58:52 GMT+0000 (Coordinated Universal Time)

@iliavial

star

Mon Dec 09 2024 06:33:35 GMT+0000 (Coordinated Universal Time) https://www.addustechnologies.com/blog/triangular-arbitrage-bot-trading-opportunities

@Seraphina

star

Sun Dec 08 2024 18:45:42 GMT+0000 (Coordinated Universal Time) https://www.thiscodeworks.com/6755e6d45d41c300140a429c

@idans8

star

Sun Dec 08 2024 16:22:34 GMT+0000 (Coordinated Universal Time) https://styled-components.com/

@Abd_ElRahaman #tsx

star

Sun Dec 08 2024 14:58:14 GMT+0000 (Coordinated Universal Time)

@saharmess #mysql

star

Sun Dec 08 2024 11:13:01 GMT+0000 (Coordinated Universal Time)

@John_Almer

star

Sun Dec 08 2024 11:10:57 GMT+0000 (Coordinated Universal Time)

@John_Almer

star

Sun Dec 08 2024 10:33:11 GMT+0000 (Coordinated Universal Time)

@John_Almer

star

Sun Dec 08 2024 10:32:36 GMT+0000 (Coordinated Universal Time)

@John_Almer

star

Sat Dec 07 2024 21:20:19 GMT+0000 (Coordinated Universal Time) https://salesforcetime.com/2023/11/15/how-to-control-the-css-of-screen-flows/

@dannygelf #flow #salesforce #ui

star

Sat Dec 07 2024 19:46:13 GMT+0000 (Coordinated Universal Time)

@davidmchale

star

Sat Dec 07 2024 11:45:20 GMT+0000 (Coordinated Universal Time)

@khadizasultana #loop #c++ #vector

star

Sat Dec 07 2024 11:27:32 GMT+0000 (Coordinated Universal Time)

@hitsabhishek

star

Sat Dec 07 2024 11:01:50 GMT+0000 (Coordinated Universal Time)

@hitsabhishek

star

Sat Dec 07 2024 10:31:58 GMT+0000 (Coordinated Universal Time) https://developer.chrome.com/docs/extensions/reference/api/types#ChromeSetting

@Misotek25 #ts

star

Sat Dec 07 2024 10:16:46 GMT+0000 (Coordinated Universal Time) https://www.onlinegdb.com/online_c_compiler

@Narendra

star

Sat Dec 07 2024 10:15:42 GMT+0000 (Coordinated Universal Time) https://www.onlinegdb.com/online_c_compiler

@Narendra

star

Sat Dec 07 2024 08:58:43 GMT+0000 (Coordinated Universal Time) https://www.onlinegdb.com/online_c_compiler

@Narendra

star

Sat Dec 07 2024 07:00:07 GMT+0000 (Coordinated Universal Time) https://angelx-speedo.com/fast-liquidation-sell-usdt-to-inr-with-angelx-speedo/

@diagorass #angelxspeedo #sell #usdt #inr

star

Sat Dec 07 2024 06:53:28 GMT+0000 (Coordinated Universal Time) https://blockchainjunction.online

@diagorass #blockchain #blockchainjunction #web3 #india

star

Sat Dec 07 2024 06:49:54 GMT+0000 (Coordinated Universal Time) https://angelx-super.com/how-it-works/

@diagorass ##angelxsuper ##usdt #inr

star

Sat Dec 07 2024 02:39:57 GMT+0000 (Coordinated Universal Time)

@John_Almer

star

Fri Dec 06 2024 20:50:23 GMT+0000 (Coordinated Universal Time)

@okkpurple

star

Fri Dec 06 2024 18:01:21 GMT+0000 (Coordinated Universal Time)

@jrg_300i #undefined

Save snippets that work with our extensions

Available in the Chrome Web Store Get Firefox Add-on Get VS Code extension