الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

نتيجة السؤال الأول من مسابقة الفريق العربي للبرمجة -1

بدأه أحمد أبو عبد البر في 13 سبتمبر 2013 · 7 رد · 1,497 مشاهدة · في المسابقات البرمجية
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله

 

نتيجة السؤال الأول هي -262

 

وقد تمكن ثلاثة مشتركين من الوصول للحل وهم

 

abdou001   بلغة ++C

 

zetrix       بلغة #C

 

مصطفى 36a2    بلغة JAVA

 

 

ولقد تحصل كل منهم على 300 نقطة ولهم أن يضعوا أكوادهم وإلا اخترنا أحد الأكواد ووضعانه هنا

 

بالتوفيق في السؤال القادم

تم تعديل هذه المشاركة بواسطة أحمد أبو عبد البر في 13 سبتمبر 2013 في 16:35

vVIfFr.gif

مدونتي



إذا رأيتموني غبت فأطلت الغياب فربما أكون قد انتقلت عن الدنيا إلى الآخرة

فما أحوجني إلى دعوة صالحة من أخ لي كريم

 

http://www.tvquran.com/

 

LoGeCom

أول برنامج عربي للمحاسبة والتجارة وإدراة المخازن يعمل على اللينكس والماك والويندوز 

#2

 تم الحل بلغة c++

#3

الحل بلغة ++c

#include <iostream>#include <fstream>#include <windows.h>using namespace std;/////////////////////////////////////////////////void init(int **(&array));void read(int **(&array));int horizontally(int **(&array));int vertically(int **(&array));int diagonally1(int **(&array));int diagonally2(int **(&array));int getMinNum(int **(&array));/////////////////////////////////////////////////int main(){int **array;init(array);read(array);cout << getMinNum(array) << endl;return 0;}/////////////////////////////////////////////////int getMinNum(int **(&array)){int min1( horizontally(array) );int min2( vertically(array)   );int min3( diagonally1(array)  );int min4( diagonally2(array)  );int min;min = min1 < min2 ? min1 : min2;min = min3 < min ? min3 : min;min = min4 < min ? min4 : min;return min;}/////////////////////////////////////////////////void init(int **(&array)){array = new int* [20];for(int i=0;i<20;i++)	array = new int[20];}////////////////////////////////////////////void read(int **(&array)){ifstream file("array.txt",ios::in);if(!file)	{	cerr << "cannot open " 		<< "array.txt \n";	exit(1);	}for(int i=0;i<20;i++)	for(int j=0;j<20;j++)		{		file >> array[j];		}}//////////////////////////////////////////////int horizontally( int **(&array)){int min = **array;for(int i=1;i<4;i++)	min -= (*array);		int count; for(int row = 0;row <20;row++)	for(int column = 0 ;column <=16 ;column++)		{		count = array[row][column];		for(int n = column+1; n < column+4 ; n++) 			count -= array[row][n];		if(count < min)			min = count;		}		for(int row = 19 ;row >= 0;row--)	for(int column = 19 ;column >= 3 ;column--)		{		count = array[row][column];		for(int n = column-1; n >= column-3 ; n--)			count -= array[row][n];		if(count < min)			min = count;		}		return min;}////////////////////////////////////////////////////////int vertically(int **(&array)){int min = **array;for(int i=1;i<4;i++)	min -= *array;int count; for(int column = 0 ;column <20 ;column++)	for(int row = 0; row <= 16;row++)		{		count = array[row][column];		for(int n = row+1; n < row+4 ; n++)			count -= array[n][column];		if(count < min)			min = count;		}for(int column = 19 ;column >= 0;column--)	for(int row = 19 ;row >= 3 ;row--)		{		count = array[row][column];				for(int n = row-1; n >= row-3 ; n--)			count -= array[n][column];		if(count < min)			min = count;		}		return min;}///////////////////////////////////////////////////////////int diagonally1(int **(&array)){int min = **array;for(int i=1;i<=3;i++)	min -= array;int count;for(int row =0;row <= 16 ; row++)	for(int column = 0;column<=16;column++)		{		count = array[row][column];			for(int n=1;n <= 3;n++)			count -= array[row+n][column+n];		if(count < min)			min = count;		}for(int row =19;row >=3  ; row--)	for(int column = 19;column >= 3 ;column--)		{		count = array[row][column];				for(int n=1;n <= 3;n++)			count -= array[row-n][column-n];		if(count < min)			min = count;		}				return min;}///////////////////////////////////////////////////////int diagonally2(int **(&array)){int min = (*array)[19];for(int n=1;n<=3;n++)	min -= array[n][19-n];int count;for(int row =0;row <= 16 ; row++)	for(int column = 19;column >= 3;column--)		{		count = array[row][column];			for(int n=1;n <= 3;n++)			count -= array[row+n][column-n];		if(count < min)			min = count;		}for(int row =19;row >=3  ; row--)	for(int column = 0;column <= 16 ;column++)		{		count = array[row][column];				for(int n=1;n <= 3;n++)			count -= array[row-n][column+n];		if(count < min)			min = count;		}		return min;}
2
#4
abdou001 كتب:

 تم الحل بلغة c++

تم تصحيح الخطأ

vVIfFr.gif

مدونتي



إذا رأيتموني غبت فأطلت الغياب فربما أكون قد انتقلت عن الدنيا إلى الآخرة

فما أحوجني إلى دعوة صالحة من أخ لي كريم

 

http://www.tvquran.com/

 

LoGeCom

أول برنامج عربي للمحاسبة والتجارة وإدراة المخازن يعمل على اللينكس والماك والويندوز 

#5

//------------------------------------------

//Language : C#

//Full Name : Abdelalim ZERKANI

//Result: -262

//------------------------------------------

public int getMinNum(int[,] mat)

{

int min = mat[0,0];

for (int row = 0; row < 20; row++)

for (int col = 0; col < 20; col++)

{

if (col + 3 < 20)

{

int sum = mat[row, col] - mat[row, col + 1] - mat[row, col + 2] - mat[row, col + 3];

if (sum < min)

min = sum;

sum = mat[row, col+3] - mat[row, col + 2] - mat[row, col + 1] - mat[row, col];

if (sum < min)

min = sum;

}

if (row + 3 < 20)

{

//MessageBox.Show("row: "+row+" col: "+col+"\nmat: "+mat.GetLength(0)+"; "+mat.GetLength(1));

int sum = mat[row, col] - mat[row + 1, col] - mat[row + 2, col] - mat[row + 3, col];

if (sum < min)

min = sum;

sum = mat[row + 3, col] - mat[row + 2, col] - mat[row + 1, col] - mat[row, col];

if (sum < min)

min = sum;

}

if (row + 3 < 20 && col + 3 < 20)

{

int sum = mat[row, col] - mat[row + 1, col + 1] - mat[row + 2, col + 2] - mat[row + 3, col + 3];

if (sum < min)

min = sum;

sum = mat[row+3, col+3] - mat[row + 2, col + 2] - mat[row + 1, col + 1] - mat[row, col];

if (sum < min)

min = sum;

}

}

return min;

}

public int[,] LoadMatrixFromFile(string path)

{

string[] file = File.ReadAllLines(path);

int[,] mat = new int[20, 20];

//Foreach line in the text

for (int count = 0; count < file.GetLength(0); count++)

{

//Foreach character in the text

int j = 0;

for (int i = 0; i < file[count].Length; i+=3)

{

string strNbr="";

strNbr += file[count];

strNbr += file[count][i+1];

mat[count, j] = Convert.ToInt32(strNbr);

j++;

}

}

return mat;

}

2
#6

الحمد لله :) 

import java.util.Scanner;public class FirstQuestion {	private static int size=20;		public static void main(String[]args){		Scanner s=new Scanner(System.in);		int x[][]=new int[size][size];		for(int i=0;i<size;i++)		{			for(int j=0;j<size;j++)			{				x[j]=s.nextInt();			}		}		System.out.println(getMinNum(x));	}	public static int getMinNum(int x[][]){		int min=0;		int subMin=0;		for(int i=0;i<size;i++)		{			for(int j=0;j<size-3;j++)			{				subMin=x[j];				for(int k=1;k<4;k++)subMin-=x[j+k];				if(subMin<min)					min=subMin;								subMin=x[j+3];				for(int k=1;k<4;k++)subMin-=x[j+3-k];				if(subMin<min)					min=subMin;			}		}		for(int i=0;i<size-3;i++)		{			for(int j=0;j<size;j++)			{				subMin=x[j];				for(int k=1;k<4;k++)subMin-=x[i+k][j];				if(subMin<min)					min=subMin;								subMin=x[i+3][j];				for(int k=1;k<4;k++)subMin-=x[i+3-k][j];				if(subMin<min)					min=subMin;			}		}		for(int i=0;i<size-3;i++)		{			for(int j=0;j<size-3;j++)			{				subMin=x[j];				for(int k=1;k<4;k++)subMin-=x[i+k][j+k];				if(subMin<min)					min=subMin;								subMin=x[i+3][j+3];				for(int k=1;k<4;k++)subMin-=x[i+3-k][j+3-k];				if(subMin<min)					min=subMin;			}		}		for(int i=4;i<size;i++)		{			for(int j=0;j<size-3;j++)			{				subMin=x[j];				for(int k=1;k<4;k++)subMin-=x[i-k][j+k];				if(subMin<min)					min=subMin;								subMin=x[i-3][j+3];				for(int k=1;k<4;k++)subMin-=x[i-3+k][j+3-k];				if(subMin<min)					min=subMin;			}		}		return min;	}}
2
#7

السلام عليكم ورحمة الله وبركاته

هذا الكود مكتوب بلغة فيجوال بيسك 6

اعتقد انه قصير بما يكفى

Option Explicit
Dim splitarray() As String
Dim ar(1 To 400) As Integer
Dim u, min, inc, x, j As Integer
Dim st, st1 As String
Private Sub cmd_split_Click()
Dim i As Integer
splitarray = Split("08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08 " _
& "49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00 " _
& "81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 49 13 36 65 " _
& "52 70 95 23 04 60 11 42 69 24 68 56 01 32 56 71 37 02 36 91 " _
& "88 36 68 87 57 62 20 72 03 46 33 67 46 55 12 32 63 93 53 69 " _
& "04 52 08 83 97 35 99 16 07 97 57 32 16 26 26 79 33 27 98 66 " _
& "22 31 16 71 51 67 63 89 41 92 36 54 22 40 40 28 66 33 13 80 " _
& "24 47 32 60 99 03 45 02 44 75 33 53 78 36 84 20 35 17 12 50 " _
& "32 98 81 28 64 23 67 10 26 38 40 67 59 54 70 66 18 38 64 70 " _
& "67 26 20 68 02 62 12 20 95 63 94 39 63 08 40 91 66 49 94 21 " _
& "24 55 58 05 66 73 99 26 97 17 78 78 96 83 14 88 34 89 63 72 " _
& "21 36 23 09 75 00 76 44 20 45 35 14 00 61 33 97 34 31 33 95 " _
& "78 17 53 28 22 75 31 67 15 94 03 80 04 62 16 14 09 53 56 92 " _
& "16 39 05 42 96 35 31 47 55 58 88 24 00 17 54 24 36 29 85 57 " _
& "86 56 00 48 35 71 89 07 05 44 44 37 44 60 21 58 51 54 17 58 " _
& "19 80 81 68 05 94 47 69 28 73 92 13 86 52 17 77 04 89 55 40 " _
& "20 69 36 41 72 30 23 88 34 62 99 69 82 67 59 85 74 04 36 16 " _
& "20 73 35 29 78 31 90 01 74 31 49 71 48 86 81 16 23 57 05 54 " _
& "04 42 16 73 38 25 39 11 24 94 72 18 08 46 29 32 40 62 76 36 " _
& "01 70 54 71 83 51 54 69 16 92 33 48 61 43 52 01 89 19 67 48", " ")
min = 0
u = 0
For i = 0 To UBound(splitarray)
        ar(i + 1) = splitarray(i)
Next i
For j = 1 To 400
    For inc = 1 To 8
        x = Choose(inc, -21, -20, -19, 1, 21, 20, 19, -1)
       If j + 3 * x > 0 And j + 3 * x <= 400 Then
                u = ar(j) - ar(j + x) - ar(j + 2 * x) - ar(j + 3 * x)
                If u < min Then
                    min = u
                    st = ar(j) & "  -  " & ar(j + x) & "  -  " & ar(j + 2 * x) & "  -  " & ar(j + 3 * x)
                    st1 = j & "  -  " & j + x & "  -  " & j + 2 * x & "  -  " & j + 3 * x
                End If
       End If
        
    Next inc
Next j
MsgBox " the smallest Value is               " & min & "       " & vbCrLf & vbCrLf & "the Numbers in Array        " & st & vbCrLf & vbCrLf & "the Numbers orders in Array          " & st1, , "Smallest"
End Sub

تم تعديل هذه المشاركة بواسطة أحمد أبو عبد البر في 15 سبتمبر 2013 في 22:39

#8

استعمل محرر الأكواد في المرة القادمة

المشار إليه بالرمز <>

1

vVIfFr.gif

مدونتي



إذا رأيتموني غبت فأطلت الغياب فربما أكون قد انتقلت عن الدنيا إلى الآخرة

فما أحوجني إلى دعوة صالحة من أخ لي كريم

 

http://www.tvquran.com/

 

LoGeCom

أول برنامج عربي للمحاسبة والتجارة وإدراة المخازن يعمل على اللينكس والماك والويندوز 

مواضيع مشابهة